আমি পড়তে পেরেছি যে গিটে ফাইলগুলির নাম পরিবর্তন করার সময় , আপনার কোনও পরিবর্তন করা উচিত, আপনার নামটি সম্পাদন করা উচিত এবং তারপরে আপনার নাম পরিবর্তন করা ফাইলটি স্টেজ করা উচিত। গিট ফাইলটিকে একটি নতুন চিহ্নবিহীন ফাইল হিসাবে না দেখে বিষয়বস্তুগুলি থেকে সনাক্ত করবে এবং পরিবর্তনের ইতিহাস রাখবে।
যাইহোক, এই আজকের রাতেই আমি আবার ফিরে এসেছি git mv।
> $ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: index.html
#
থেকে ফাইন্ডারে আমার স্টাইলশীট পুনঃনামকরণ iphone.cssকরাmobile.css
> $ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: index.html
#
# Changed but not updated:
# (use "git add/rm <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# deleted: css/iphone.css
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# css/mobile.css
সুতরাং গিট এখন মনে করে আমি একটি সিএসএস ফাইল মুছে ফেলেছি এবং একটি নতুন যুক্ত করেছি। আমি যা চাই তা নয়, পুনরায় নামটি পূর্বাবস্থায় ফেরা যাক এবং গিটকে কাজটি করতে দিন।
> $ git reset HEAD .
Unstaged changes after reset:
M css/iphone.css
M index.html
আমি যেখানে শুরু করেছি সেখানে ফিরে এসেছি।
> $ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: index.html
#
git mvপরিবর্তে ব্যবহার করতে দেয় ।
> $ git mv css/iphone.css css/mobile.css
> $ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# renamed: css/iphone.css -> css/mobile.css
#
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: index.html
#
দেখে মনে হচ্ছে আমরা ভালো আছি। তাহলে আমি যখন ফাইন্ডার ব্যবহার করেছি তখন কেন প্রথমবারের মতো গিটার পুনরায় নামটি সনাক্ত করতে পারেনি?
git mv old newস্বয়ংক্রিয়ভাবে সূচক আপডেট করে। আপনি যখন গীত বাইরে নামান্তর, আপনি করতে হবে git add newএবং git rm oldসূচক পরিবর্তন মঞ্চ। একবার আপনি এটি করার পরে আপনার git statusপ্রত্যাশা মতো কাজ করবে।
public_htmlডিয়ারের মধ্যে স্থানান্তরিত করেছি , যেগুলি গিটে ট্র্যাক করা হয়। সম্পাদন করে git add .এবং git commitএটি এখনও 'মুছে ফেলা' ফাইলগুলির একগুচ্ছ দেখায় git status। আমি একটি সম্পাদন করেছি git commit -aএবং মোছাগুলি কমিয়ে দেওয়া হয়েছিল তবে এখন যে ফাইলগুলিতে বাস করা আছে তার কোনও ইতিহাস নেই public_html। এই কাজের প্রবাহ আমার পছন্দ মতো মসৃণ নয়।
add+rmবাmv- এটি একই ফল উত্পন্ন করে। গিট এর পরে এটির পুনর্নবীকরণ / অনুলিপি সনাক্তকরণ ব্যবহার করে আপনাকে জানায় যে এটি একটি পুনর্নবীকরণ। আপনার উদ্ধৃত উত্সটিও সঠিক নয় c আপনি একই প্রতিশ্রুতিতে + নাম পরিবর্তন করেছেন কিনা তা আসলেই কিছু যায় আসে না। আপনি যখন পরিবর্তন এবং পুনঃনামকরণ উভয় ক্ষেত্রে পৃথক করেন, পুনরায় নামকরণ সনাক্তকরণ এটি পুনরায় নামকরণ + পরিবর্তন হিসাবে দেখবে, বা যদি পরিবর্তনটি একটি সম্পূর্ণ পুনর্লিখন হয় তবে এটি যুক্ত এবং মুছে ফেলা হিসাবে প্রদর্শিত হবে - আপনি কীভাবে সম্পাদন করেছেন তা এখনও বিবেচ্য নয় এটা।