আমি কেবল একটি গিট সংগ্রহস্থল ক্লোন করে একটি শাখা পরীক্ষা করেছি। আমি এটিতে কাজ করেছি, এবং তারপরে আমি আমার সমস্ত স্থানীয় পরিবর্তনগুলি সরিয়ে নেওয়ার সিদ্ধান্ত নিয়েছি, কারণ আমি আসল অনুলিপিটি চেয়েছিলাম।
সংক্ষেপে, আমার স্থানীয় পরিবর্তনগুলি সরাতে আমাকে নিম্নলিখিত দুটি কমান্ডটি করতে হয়েছিল
git checkout .
git clean -f
আমার প্রশ্ন হ'ল,
(1) স্থানীয় পরিবর্তনগুলি থেকে মুক্তি পাওয়ার জন্য এটিই সঠিক পদ্ধতি, না হলে দয়া করে আমাকে সঠিক পদ্ধতিটি জানান।
(২) কখন git reset --hard
আমি এই আদেশটি ছাড়াই পুনরায় সেট করতে সক্ষম হিসাবে ব্যবহার করব
ধন্যবাদ
* সমাধান: প্রধান সম্পাদনা (গুলি): 03/26: * গিট নির্দিষ্ট পরিভাষা [ট্র্যাকড / আনট্র্যাকড / স্টেজড / আনস্টেজড] দ্বারা অনেক অস্পষ্ট পদকে প্রতিস্থাপন করেছে
আমরা স্থানীয় পরিবর্তনগুলি করার সময় কেবলমাত্র তিনটি ফাইলই থাকতে পারে:
প্রকারের 1. স্টেজড ট্র্যাক করা ফাইল
টাইপ 2. আনস্টেজড ট্র্যাক করা ফাইল
টাইপ 3. আনস্টেজড ট্র্যাক না করা ফাইলগুলি ওরফে আনট্যাক করা ফাইল
- স্টেজড - স্টেজিং এরিয়াতে স্থানান্তরিত / সূচীতে যুক্ত হওয়াগুলি
- ট্র্যাক - পরিবর্তিত ফাইল
- ট্র্যাক না করা - নতুন ফাইল। সর্বদা অচিরাচরিত। যদি মঞ্চস্থ হয়, তার মানে তারা ট্র্যাক করেছে।
প্রতিটি কমান্ড কী করে:
git checkout .
- কেবলমাত্র অচিহ্নবদ্ধ ট্র্যাক করা ফাইলগুলি সরান [প্রকার 2]git clean -f
- আনস্টেজ না করা ট্র্যাক করা ফাইলগুলি কেবলমাত্র সরান [প্রকার 3]git reset --hard
- স্টেজড ট্র্যাকড এবং আনসটজড ট্র্যাকড ফাইলগুলি কেবলমাত্র সরান [প্রকার 1, প্রকার 2]git stash -u
- সমস্ত পরিবর্তনগুলি সরান [প্রকার 1, প্রকার 2, প্রকার 3]
উপসংহার:
এটা পরিষ্কার যে আমরা যে কোনওটি ব্যবহার করতে পারি
(1) combination of `git clean -f` and `git reset --hard`
অথবা
(2) `git stash -u`
কাঙ্ক্ষিত ফলাফল অর্জন।
দ্রষ্টব্য: স্ট্যাশিং, শব্দের অর্থ 'নির্দিষ্ট জায়গায় নিরাপদে এবং গোপনে সংরক্ষণ করুন' (কোনও কিছু)। এটি সর্বদা ব্যবহার করে পুনরুদ্ধার করা যায় git stash pop
। সুতরাং উপরোক্ত দুটি বিকল্পের মধ্যে চয়ন করা বিকাশকারীদের কল।
ক্রিস্টোফ এবং ফ্রেডেরিক শ্যাঙ্কিংকে ধন্যবাদ।
সম্পাদনা করুন: 03/27
আমি ভেবেছিলাম এটি ' সাবধান ' নোটটি রাখার মতোgit clean -f
git clean -f
আর ফিরে যাচ্ছে না। আপনি যে ক্ষতির করবেন তার পূর্বরূপ ব্যবহার করুন -n
বা করুন --dry-run
।
আপনি যদি ডিরেক্টরিগুলিও সরাতে চান তবে চালান git clean -f -d
আপনি যদি কেবল উপেক্ষা করা ফাইলগুলি সরাতে চান তবে চালান git clean -f -X
আপনি যদি অবহেলিত পাশাপাশি অ-উপেক্ষা করা ফাইলগুলি মুছতে চান তবে চালান git clean -f -x
রেফারেন্স: আরও অন git clean
: বর্তমান গিট ওয়ার্কিং ট্রি থেকে লোকাল (চিহ্নবিহীন) ফাইলগুলি কীভাবে সরানো যায়?
সম্পাদনা করুন: 05/20/15
এই শাখায় সমস্ত স্থানীয় কমিটি বাতিল করা [ স্থানীয় কমিটগুলি সরানো]
এই শাখায় সমস্ত স্থানীয় কমিটিকে বাতিল করতে, স্থানীয় শাখাকে এই শাখার "উজান" এর অনুরূপ করার জন্য, কেবল চালানো git reset --hard @{u}
তথ্যসূত্র: http://sethrobertson.github.io/GitFixUm/fixup.html
বা করুন git reset --hard origin/master
[যদি স্থানীয় শাখা হয় master
]
নোট: 06/12/2015 এই না অন্যান্য তাই প্রশ্ন যে সদৃশ হিসাবে চিহ্নিত হচ্ছে সদৃশ। স্থানীয় জিআইটি পরিবর্তনগুলি কীভাবে মুছে ফেলা যায় সে সম্পর্কে এই প্রশ্নটির ঠিকানা দেওয়া হয়েছে [একটি ফাইল যুক্ত করা সরিয়ে ফেলুন, বিদ্যমান ফাইলগুলিতে যুক্ত হওয়া পরিবর্তনগুলি মুছে ফেলুন ইত্যাদি এবং বিভিন্ন পদ্ধতি; যেখানে অন্যান্য এসও থ্রেডে কেবল স্থানীয় প্রতিশ্রুতিগুলি কীভাবে সরিয়ে ফেলা হবে তা সম্বোধন করে। আপনি যদি কোনও ফাইল যোগ করেছেন এবং আপনি এটি একা সরাতে চান তবে অন্য এসও থ্রেড এটি নিয়ে আলোচনা করে না। সুতরাং এটি অন্যটির সদৃশ নয়]
সম্পাদনা: 06/23/15
ইতিমধ্যে একটি দূরবর্তী সংগ্রহস্থলে পুশ করা প্রতিশ্রুতি কীভাবে ফিরিয়ে আনবেন?
$ git revert ab12cd15
সম্পাদনা: 09/01/2015
স্থানীয় শাখা এবং দূরবর্তী শাখা থেকে পূর্বের প্রতিশ্রুতি মুছুন
কেস: আপনি সবেমাত্র আপনার স্থানীয় শাখায় একটি পরিবর্তন এনেছিলেন এবং সাথে সাথে প্রত্যন্ত শাখায় ঠেলাঠেলি করলেন, হঠাৎ বুঝতে পারলেন, ওহ না! আমি এই পরিবর্তন প্রয়োজন। এখন কি করবে?
git reset --hard HEAD~1
[স্থানীয় শাখা থেকে যে প্রতিশ্রুতি মুছে ফেলার জন্য]
git push origin HEAD --force
[উভয় কমান্ড কার্যকর করা আবশ্যক। দূরবর্তী শাখা থেকে মুছে ফেলার জন্য]
শাখা কি? এটি বর্তমানে চেক আউট শাখা।
সম্পাদনা করুন 09/08/2015 - সরান স্থানীয় Git একত্রীকরণ :
আমি master
শাখায় আছি এবং master
একটি নতুন কার্যকারী শাখার সাথে একীভূত শাখাphase2
$ git status
# On branch master
$ git merge phase2
$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 8 commits.
প্রশ্ন: এই মার্জ থেকে কীভাবে মুক্তি পাবেন? চেষ্টা করেছেন git reset --hard
এবং git clean -d -f
দুজনই কাজ করেননি।
নিচের যে কোনওটি কেবলমাত্র কাজ করেছে:
$ git reset --hard origin/master
অথবা
$ git reset --hard HEAD~8
অথবা
$ git reset --hard 9a88396f51e2a068bb7
[শ কমিট কোড - এটি হ'ল এটি যা আপনার সমস্ত মার্জ কমিট হওয়ার আগে উপস্থিত হয়েছিল]
git stash -a
[বা - সমস্ত] পাশাপাশি উপেক্ষা করা এবং তালিকৃত ফাইলগুলিও স্ট্যাশ করবে। git clean -x
উপেক্ষা করা ফাইলগুলিও পরিষ্কার করবে। git clean -X
কেবল উপেক্ষা করা ফাইলগুলি পরিষ্কার করবে।