গিট - আপনার শাখা 1 কমিট দ্বারা 'উত্স / মাস্টার' এর চেয়ে এগিয়ে ahead


107

আমি গিট মধ্যে নবাগত এবং আমি গিটে কাজ করছি।

আমি গিটে কিছু ফাইল যুক্ত করেছি:

git add <file1>
git add <file2>

তারপরে আমি তা পর্যালোচনার জন্য ঠেলাতে চেয়েছিলাম, তবে ভুল করে আমি তা করেছি

git commit

সুতরাং আমি যে ফাইলগুলি পরিবর্তন করেছি সেগুলি পর্যালোচনার জন্য যায় না।
এখন যদি আমি কমান্ডটি প্রবেশ করি:

git status

এটা বলে

# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)

আমি সেই প্রতিশ্রুতিটি ফিরিয়ে দিতে চাই এবং প্রতিশ্রুতি না দিয়ে এই ফাইলগুলিকে পর্যালোচনার জন্য চাপ দিতে চাই। আমি কীভাবে এটি করতে পারি তা কি কেউ আমাকে জানাতে পারেন?


আপনি যদি নিজের প্রতিশ্রুতি পূর্বাবস্থায় ফিরিয়ে নিতে চান - অনুরূপ প্রশ্নটি একবার দেখুন
0

1
আপনি কোড পর্যালোচনার জন্য কী ব্যবহার করছেন তা আমি জানি না। কিভাবে উন কমিট সহজ প্রশ্নের সহজ উত্তর নেইgit reset HEAD^
Anonymoose

আমি মাথা রিসেট করেছি। কিন্তু তারপরে আমি যখন ধাক্কা দেওয়ার চেষ্টা করি, তখন এটি আমাকে ডি ফাইল1.py বলেছিল যখন আমি psuh করার চেষ্টা করেছি তখন আবার এটি আমাকে বলে যে আপনার শাখাটি 1 কমিট দ্বারা উত্স / মাস্টারের চেয়ে এগিয়ে আছে
সাম

যখন আপনি "আমি এই ফাইলগুলিকে পর্যালোচনার জন্য চাপ দিতে চাই" বললে আপনার অর্থ কী? আপনি কি চান অন্য লোকেরা আপনার প্রতিশ্রুতিটি দেখতে পাবে?
জেক গ্রিন

আমার কোডটি প্রথমে পর্যালোচনা করা হবে এবং তারপরে এটি কমিট করা হবে। তাই প্রথমে আমি কোডটি পর্যালোচনার জন্য চাপ দিতে চাই তবে ভুল করে আমি কমিট করেছি
স্যাম

উত্তর:


128

আপনি যে কোনও কিছু এখনও প্রতিশ্রুতিবদ্ধ হয়নি তা ঠেকাতে পারবেন না। ক্রিয়াকলাপ ক্রম:

  1. আপনার পরিবর্তন করুন।
  2. git add - এটি প্রতিশ্রুতিবদ্ধকরণের জন্য আপনার পরিবর্তনগুলি পর্যায়ক্রমে
  3. git commit - এটি স্থানীয়ভাবে আপনার পর্যায়ের পরিবর্তনগুলি সম্পাদন করে
  4. git push - এটি আপনার প্রতিশ্রুতিবদ্ধ পরিবর্তনগুলি রিমোটে ঠেলে দেয়

আপনি যদি প্রতিশ্রুতি না দিয়ে চাপ দেন তবে কিছুই ঠেলাঠেলি করে না। আপনি যদি যোগ না করে প্রতিশ্রুতিবদ্ধ হন তবে কিছুই প্রতিশ্রুতিবদ্ধ হয় না। যদি আপনি প্রতিশ্রুতি না দিয়ে যোগ করেন তবে কিছুই হয় না, গিট কেবল মনে করে যে আপনি যে পরিবর্তনগুলি যুক্ত করেছেন তা নিম্নলিখিত প্রতিশ্রুতিবদ্ধতার জন্য বিবেচনা করা উচিত।

আপনি যে বার্তাটি দেখছেন (আপনার শাখাটি 1 টি প্রতিশ্রুতি দিয়ে এগিয়ে রয়েছে) এর অর্থ হল আপনার স্থানীয় সংগ্রহস্থলের একটি প্রতিশ্রুতি রয়েছে যা এখনও ঠেলা যায়নি।

অন্য কথায়: addএবং commitস্থানীয় অপারেশন হয় push, pullএবং fetchঅপারেশন আছে একটি দূরবর্তী সাথে ইন্টারঅ্যাক্ট করুন।

যেহেতু আপনি যেখানে কাজ করছেন সেখানে অফিসিয়াল সোর্স কন্ট্রোল ওয়ার্কফ্লো বলে মনে হচ্ছে, আপনার অভ্যন্তরীণভাবে জিজ্ঞাসা করা উচিত এটি কীভাবে পরিচালনা করা উচিত।


4
আহা ঠিক আছে। সুতরাং এর অর্থ প্রতিশ্রুতিবদ্ধ হওয়ার পরে, আমাকে এটিকে
চাপতে

4
ভাল ব্যাখ্যা - প্রশ্নকর্তা সম্ভবত প্রতিশ্রুতিটি প্রত্যাহার করতে চান না, বরং লোকেরা প্রতিশ্রুতিবদ্ধদের দিকে চাপ দেওয়ার আগে প্রতিশ্রুতিটি পর্যালোচনা করতে পারে origin। আমি git-scm.com
গিটারের

1
যখন আমার গিট স্ট্যাটাসটি বলে "আপনার শাখা 1 টি প্রতিজ্ঞার দ্বারা 'উত্স / বিকাশ' এর আগে is ফাইলগুলি পরিবর্তন করা হয়েছিল আমি ঠিক কীভাবে দেখতে পারি? গিট ডিফ কিছু করতে পারে না বলে মনে হচ্ছে
টম

কখনও কখনও অন্য কেউ যে সেখানে কাজ করেছে। আপনার ধাক্কা দেওয়ার আগে টানুন
এড্রিয়ান পি।

67

git reset HEAD^ --soft (আপনার পরিবর্তনগুলি সংরক্ষণ করুন, শেষ প্রতিশ্রুতিতে ফিরে যান)

git reset HEAD^ --hard (পরিবর্তনগুলি বাতিল করুন, শেষ প্রতিশ্রুতিতে ফিরে যান)


3
গাজর '^' দিয়ে হেডের তাত্পর্যটি কী? আমি দেখেছি এটি গাজর ছাড়াও লেখা হচ্ছে।
মুগেন

29

আপনি যদি কেবল পরিবর্তনগুলি ফেলে দিতে চান এবং সর্বশেষ প্রতিশ্রুতিতে ফিরে যেতে চান (আপনি যা ভাগ করতে চেয়েছিলেন):

git reset --hard HEAD~

আপনি এটি ( git log) চাইছেন তা নিশ্চিত করার জন্য আপনি চেক করতে চাইতে পারেন , কারণ আপনি সমস্ত পরিবর্তন হারাবেন।

একটি নিরাপদ বিকল্প চালানো হয়

git reset --soft HEAD~ # reset to the last commit
git stash              # stash all the changes in the working tree 
git push               # push changes 
git stash pop          # get your changes back 

21

আমি কেবল একটি সরল চালিয়ে এটি সমাধান করেছি:

git pull

বেশি না. এখন এটি প্রদর্শিত হচ্ছে:

# On branch master
nothing to commit, working directory clean

এটির জন্য সমস্যা তৈরি করতে পারে যদি একের অধিক তৈরি শাখা থাকে যা প্রয়োজন হয় না।
অনিল কুমার আর্য

1
আপনি আপনার প্রত্যন্ত রাজ্যে ফিরে গিয়েছিলেন এবং আপনার শেষ কাজটি হারিয়েছেন: ডি
গুচো Ca

13

গিট রিসেট হেড ^

তারপরে পরিবর্তিত ফাইলগুলি প্রদর্শিত হবে।

আপনি পরিবর্তিত ফাইলগুলি একটি নতুন শাখায় স্থানান্তর করতে পারেন

ব্যবহার,

git checkout -b newbranch

git checkout commit -m "files modified"

git push origin newbranch

git checkout master

তারপরে আপনার একটি পরিষ্কার শাখায় থাকা উচিত এবং আপনার পরিবর্তনগুলি নিউ ব্রাঞ্চে সংরক্ষণ করা উচিত। আপনি পরে এই পরিবর্তনটিকে মাস্টার শাখায় মার্জ করতে পারেন


4
git reset HEAD <file1> <file2> ...

পরবর্তী কমিট থেকে নির্দিষ্ট ফাইলগুলি সরান

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.