গিতের একটি ফাইলের কেবলমাত্র অঙ্গীকারবদ্ধ করুন


2763

আমি যখন গিটে কোনও ফাইলে পরিবর্তন করি, তখন আমি কীভাবে কেবলমাত্র কিছু পরিবর্তন করতে পারি?

উদাহরণস্বরূপ, আমি 30 টি লাইনের মধ্যে কেবল 15 টি লাইন কীভাবে ফাইলগুলিতে পরিবর্তন করেছি?


3
সম্পর্কিত স্ট্যাকওভারফ্লো.com / q / 34609924 / 52074 : আপনার যদি একটি কুঁচকে ছোট কুকুরের মধ্যে বিভক্ত করতে হয়।
ট্রেভর বয়ড স্মিথ

সংক্ষিপ্তসার: সামর্থ্যের দিক থেকে: git gui= git add -e> git add -i -p; সুবিধার পরিপ্রেক্ষিতে: git gui> git add -i -p> git add -e। সুতরাং: git guiআপনি এক্স এ অ্যাক্সেস git add -i -pgit add -e
পেলে বাছুন, সাধারণ স্টাফের

উত্তর:


3685

আপনি ব্যবহার করতে পারেন git add --patch <filename>(বা -pসংক্ষেপে), এবং গিট আপনার ফাইলটিকে বুদ্ধিমান "কুনি" (ফাইলের অংশ) বলে মনে করে তা ভেঙে ফেলা শুরু করবে। এরপরে এটি আপনাকে এই প্রশ্নটি জিজ্ঞাসা করবে:

Stage this hunk [y,n,q,a,d,/,j,J,g,s,e,?]?

এখানে প্রতিটি বিকল্পের বিবরণ দেওয়া হল:

  • y পরবর্তী প্রতিশ্রুতি জন্য এই কুঁচি মঞ্চ
  • n পরবর্তী প্রতিশ্রুতিবদ্ধতার জন্য এই কুঁচকে মঞ্চস্থ করবেন না
  • qপ্রস্থান; এই কুঁচকী বা বাকি কুকুরগুলির কোনও মঞ্চস্থ করবেন না
  • a এই হুঙ্ক মঞ্চে এবং পরে ফাইলগুলিতে সমস্ত কুকুর
  • d এই হুঙ্ক বা পরবর্তী কুকুরের ফাইলটিকে মঞ্চস্থ করবেন না
  • g যেতে একটি কুঁচকী নির্বাচন করুন
  • / প্রদত্ত রেজেক্সের সাথে মেলে একটি কুঁড়ির সন্ধান করুন
  • j এই কুনুটিকে নির্বিঘ্নে ছেড়ে দিন, পরবর্তী সিদ্ধান্তহীন কূট দেখুন
  • J এই কুনুটিকে নির্বিঘ্নে ছেড়ে দিন, পরের কুনি দেখুন
  • k এই কুনুটিকে নির্বিঘ্নে ছেড়ে দিন, পূর্ববর্তী সিদ্ধান্তহীন কুনিটি দেখুন
  • K এই কুনুটিকে নির্বিঘ্নে ছেড়ে দিন, পূর্ববর্তী কুঁচক দেখুন
  • s বর্তমান কুঁচকে ছোট কুকুরের মধ্যে ভাগ করুন
  • e বর্তমান হুনকে ম্যানুয়ালি সম্পাদনা করুন
  • ? মুদ্রণ হঙ্ক সহায়তা

যদি ফাইলটি এখনও সংগ্রহশালায় না থাকে তবে আপনি প্রথমে এটি করতে পারেন git add -N <filename>। এরপরে আপনি সাথে যেতে পারেন git add -p <filename>

এরপরে, আপনি ব্যবহার করতে পারেন:

  • git diff --staged আপনি সঠিক পরিবর্তন মঞ্চস্থ করেছেন তা পরীক্ষা করতে
  • git reset -p ভুলবশত কুকুর যোগ করার জন্য
  • git commit -v আপনি প্রতিশ্রুতি বার্তা সম্পাদনা করার সময় আপনার প্রতিশ্রুতি দেখতে।

নোটটি git format-patchকমান্ডের চেয়ে অনেক বেশি আলাদা নোট করুন , যার উদ্দেশ্য একটি .patchফাইলগুলিতে কমিটের ডেটা পার্স করা ।

ভবিষ্যতের জন্য রেফারেন্স: গিট সরঞ্জাম - ইন্টারেক্টিভ স্টেজিং


83
এটি কমান্ডের -p/--patchমধ্যে প্যাচ ক্রিয়াকলাপ যা একটি শর্টকাট -i/--interactiveযা কার্যকর ইন্টারেক্টিভ মোড সূচনা করে তা লক্ষ্য করা কার্যকর হতে পারে ।
tutuDajuju

5
> যদি ফাইলটি ইতিমধ্যে মঞ্চস্থ হয় তবে কী হবে? এটি কেবল অনাস্থাবিহীন পরিবর্তনগুলি দেখায়। যেমন git diffআছে।
ইউজেন কনকভ

3
আমি কীভাবে বর্তমান হুনটিকে ম্যানুয়ালি সম্পাদনা করতে পারি? আমি e টাইপ করার পরে কি করব জানি না।
হুনসু

23
টিপে পরে e, আপনি নিজে প্রতিস্থাপন পিনু সম্পাদনা করতে পারেন +বা -দ্বারা#
veksen

1
এটি দুর্দান্ত তবে এখন আমি আসলে এটি কীভাবে ঠেলব? আমি যদি git pushএটি করতে পারি তা ইতিমধ্যে আপ টু ডেট says এবং যদি আমি করতাম তবে আমি git diffকুকুরটিকে দেখি n। যদি আমি করি তবে git diff --stagedআমি দৃ the় প্রতিজ্ঞাকে দেখতে চাই। ধরে নিচ্ছি যে আমি এই প্রতিশ্রুতিটি ঠেকাতে পারি, আমি যে কুকুরটিকে বলেছিলাম noতা কীভাবে মুছব ?
চবি

250

আপনি ব্যবহার করতে পারেন git add --interactiveবা , এবং তারপরে ( না ); দেখতে ইন্টারেক্টিভ মোডে মধ্যে Git-অ্যাড র manpage, অথবা কেবল নির্দেশাবলী অনুসরণ করুন।git add -p <file>git commit git commit -a

মডার্ন গিটেরও রয়েছে git commit --interactive(এবং git commit --patch, যা ইন্টারেক্টিভ কমিটে প্যাচ বিকল্পটি শর্টকাট)।

আপনি যদি জিইউআই থেকে এটি করতে পছন্দ করেন তবে আপনি গিট-গুই ব্যবহার করতে পারেন । আপনি কেবল খণ্ডগুলি চিহ্নিত করতে পারেন যা আপনি কমিটের সাথে অন্তর্ভুক্ত থাকতে চান। আমি ব্যক্তিগতভাবে এটি ব্যবহার করার চেয়ে সহজ মনে করি git add -i। অন্যান্য গিট জিইউআই, যেমন কিউজিট বা জিআইটিএক্স-তেও এই কার্যকারিতা থাকতে পারে।


1
মজার ব্যাপার হচ্ছে, windows.github.com আংশিক ফাইল করে ছিল সমর্থন কিন্তু এটি সম্প্রতি বাদ আছে .. মনে হয়
জুড়ী

1
@ জুড়ি আমার মনে হয় আংশিক ফাইল কমিটের জন্য সমর্থন ফিরে এসেছে
Ela782

@ জুড়ি আপনাকে স্বাগতম আমি আসলে কখনই লক্ষ্য করিনি যে এটি আগে সেখানে ছিল - আমি গত সপ্তাহে এটি দেখেছি এবং "ওহ, কী আশ্চর্যজনক নতুন বৈশিষ্ট্য" ভেবে দেখেছি! :-)
Ela782

1
আজকাল উইন্ডোজ.github.com পুনরায় ব্র্যান্ড করা গিটহাব ডেস্কটপে পুনর্নির্দেশ করে যা গিট জিইউআইয়ের চেয়ে সুন্দর এবং আংশিক কমিটকে সমর্থন করে ... তবে স্বাক্ষর করার জন্য প্রতিশ্রুতি দেয় না। দীর্ঘশ্বাস.

147

গিট গুই এই ভিন্ন বৈশিষ্ট্যের সাথে এই কার্যকারিতা সরবরাহ করে। আপনার আগ্রহী সেই লাইনটি ঠিক ডান ক্লিক করুন এবং আপনার মেনু আইটেমটি "প্রতিশ্রুতিবদ্ধ হওয়ার জন্য এই রেখাকে পর্যায়ক্রমে" দেখতে হবে।


13
জটিল প্যাচগুলির জন্য এটি সাধারণত আমার জন্য দ্রুততম পদ্ধতির।
hochl

7
সূক্ষ্ম দানাদার পদ্ধতিতে মঞ্চ অঞ্চলে পরিবর্তন যুক্ত করার এটি একটি খুব দক্ষ এবং স্বজ্ঞাত উপায়। এছাড়াও একাধিক লাইন নির্বাচন করা যেতে পারে এবং সেই নির্বাচনের মধ্যে সমস্ত পরিবর্তন যুক্ত করা হবে।
jox

মনে রাখবেন যে এটি নয় gitk, তবে এটি উইন্ডোজের জন্য গিট বাশের সাথে অন্তর্ভুক্ত রয়েছে; আপনার এটির জন্য একটি সূচনা মেনু প্রবেশ করা উচিত বা আদেশ দিয়ে এটি শুরু করতে পারেন git gui। এর stage this hunkচেয়েও বেশি কার্যকর যা আছে stage this line। এই উত্তরটি 10 ​​বছর আগে তৈরি হওয়ার পরে নতুন হতে পারে।
ক্রিস

82

আমি বিশ্বাস করি যে git add -e myfileএটি সবচেয়ে সহজতম উপায় (আমার পছন্দ অন্ততপক্ষে) যেহেতু এটি কেবল একটি পাঠ্য সম্পাদক খোলে এবং আপনাকে কোন লাইনটি মঞ্চায়িত করতে চান এবং কোন লাইনটি নয় তা চয়ন করতে দেয়। আদেশ সম্পাদনা সম্পর্কিত:

যুক্ত সামগ্রী:

যোগ করা সামগ্রী "+" দিয়ে শুরু করে রেখা দ্বারা প্রতিনিধিত্ব করা হয়। আপনি মুছে ফেলা যেকোন অতিরিক্ত লাইন মজুদ রোধ করতে পারেন।

সরানো সামগ্রী:

সরানো সামগ্রীটি "-" দিয়ে শুরু করা লাইনগুলি দ্বারা প্রতিনিধিত্ব করা হয়। আপনি "-" কে "" (স্পেস) এ রূপান্তর করে তাদের অপসারণের স্টেজিং আটকাতে পারবেন।

পরিবর্তিত সামগ্রী:

পরিবর্তিত সামগ্রীটি "-" লাইন (পুরানো সামগ্রী মুছে ফেলা) এর পরে "+" লাইন (প্রতিস্থাপনের সামগ্রী যুক্ত করে) দ্বারা প্রতিনিধিত্ব করা হয়। আপনি "-" লাইনগুলিকে "" রূপান্তর করে এবং "+" লাইনগুলি সরিয়ে পরিবর্তনটি পর্যায়ক্রমে আটকাতে পারবেন। সাবধান যে জোড়ের অর্ধেকটি সংশোধন করা সূচকে বিভ্রান্তিকর পরিবর্তন আনতে পারে।

সম্পর্কে প্রতিটি বিবরণ git addউপলব্ধgit --help add


7
আসলে কীভাবে সেই রেখাগুলি চয়ন করতে হবে (যেমন (োকাতে আসল কমান্ডগুলি) এর কোথাও স্পষ্ট ব্যাখ্যা থাকলে এটি আরও কার্যকর হবে। ডকুমেন্টেশনে একটিও পাইনি। আপনি একটি রেফারেন্স যোগ করতে পারেন?
অ্যালেক্স

4
যারা শর্টহ্যান্ড বিকল্পগুলি পছন্দ করেন না তাদের -eজন্য --edit
কোলুনিয়া

2
@Alex রেফারেন্স কোট theFreedomBanana দ্বারা যোগ অধ্যায় সম্পাদনা প্যাচ থেকে এসেছgit --help add
রান্ডাল

8
sইন্টারেক্টিভ প্যাচ মোডের সাহায্যে আপনি যখন কুকুরটিকে ছোট করতে না পারেন তখন এটিই একমাত্র উত্তর (কেবল গিটের প্রয়োজন) যা লাইন ওয়াইন যুক্ত / সরানোর সমস্যা সমাধান করে ।
সিডোসবার

3
এই কমান্ডটি ( git add -e) * * * ডিস্কে ফাইলের সামগ্রী পরিবর্তন করে না তা বোঝার জন্য এটি সহায়ক হতে পারে । এটি কেবল আনস্টেজড থেকে স্টেজড (সূচক) এ পরিবর্তনের অংশ সরিয়ে নিয়েছে।
পেঙ্গে গেঞ্জ

44

আপনি যদি ভিএম ব্যবহার করছেন তবে আপনি পলাতক নামক দুর্দান্ত প্লাগইনটি চেষ্টা করতে পারেন ।

আপনি ওয়ার্কিং কপি এবং সূচকের সাথে একটি ফাইলের পার্থক্য দেখতে পাবেন :Gdiffএবং তারপরে ক্লাসিক ভিআইএম ডিফ কমান্ড ব্যবহার করে সূচীতে লাইন বা কুন যুক্ত করুন dp। সূচকে পরিবর্তনগুলি সংরক্ষণ করুন এবং প্রতিশ্রুতিবদ্ধ করুন :Gcommitএবং আপনার কাজ শেষ।

এখানে খুব ভাল প্রারম্ভিক স্ক্রিনকাস্ট (দেখুন অংশ 2 )।


এই লিঙ্কগুলির জন্য আপনাকে অনেক ধন্যবাদ। আমার যা প্রয়োজন ঠিক ঠিক তেমন বিশেষত :diffget/:diffputভিজ্যুয়াল মোডে, যেখানে আমি নির্দিষ্ট লাইনগুলি বেছে নিতে পারি, যা আমি পুনরায় সেট করতে / প্রতিশ্রুতিবদ্ধ করতে চাই। সুতরাং, আবার নিশ্চিত করুন: ভিম দুর্দান্ত।
গুডনাইস্বেব

30

আমি দৃ strongly়ভাবে আটলাশিয়ান থেকে সোর্স ট্রি ব্যবহার করার পরামর্শ দেব । (এটি নিখরচায়)) এটি তুচ্ছ করে তোলে। আপনি দ্রুত এবং সহজেই কোডের পৃথক কুকুরের কোড বা কোডের পৃথক লাইনগুলিকে মঞ্চস্থ করতে পারেন।

এখানে চিত্র বর্ণনা লিখুন


1
আমি সম্মত হই যে উত্সট্রি এই উদ্দেশ্যে একটি ভাল হাতিয়ার, কারণ এটি আপনাকে কমান্ড লাইনের মাধ্যমে যতটা সম্ভব সম্ভব তার চেয়ে বেশি সূক্ষ্ম নিয়ন্ত্রণ দেয়।

18
@ ক্যাপকেকে আমি বিপরীতভাবে তর্ক করব, সোর্সট্রি সম্ভবত command কমান্ড লাইন গিট এক্সিকিউটেবলকে ব্যবহার করবে, সহজাতভাবে "কমান্ড লাইনের" মাধ্যমে সর্বদা একই (বা আরও) সূক্ষ্ম কাজ করা সম্ভব হবে।
tutuDajuju

2
জরিমানা- যুক্তিযুক্ত যুক্তি নির্বিশেষে আমি অত্যন্ত উত্সরবৃক্ষকে সুপারিশ করব যেহেতু হংস এবং স্বতন্ত্র লাইন মঞ্চায়ন অত্যন্ত সহজ: i.imgur.com/85bNu4C.png
মঙ্গল রবার্টসন

1
@ টতুডাজুজু এই ক্ষেত্রে, আমি নিশ্চিত যে এটি সত্য that's সোর্সট্রি লাইনে পর্যায়ক্রমে কোন অংশটি বেছে নেওয়ার ক্ষমতা রাখে । আপনাকে পুরো কুনিটে মঞ্চ করতে হবে না; আপনি একটি কুনির মাঝখানে 2 লাইন মঞ্চ করতে পারেন। যদিও এটি কীভাবে সম্পাদন করে তা আমার কোনও ধারণা নেই। (এই মুহুর্তে, সোর্সট্রি'র অনর্থকৃত ফাইলের জন্য নির্দিষ্ট লাইন মঞ্চ করতে অক্ষমতার আশেপাশে কাজ করার চেষ্টা করছি I আমি এখানে কাজ করে বেরিয়ে এসেছি, কেবল এই সন্ধানে যে গিটটি লাইন-বাই-লাইন ক্ষমতা সরবরাহ করে না বলে মনে হচ্ছে মোটেও। কমপক্ষে সোজা পদ্ধতিতে নয়))
jpmc26

1
@ সান আপনি 50 লাইনে ক্লিক করতে পারেন এবং শিফট + ক্লিক করুন 100 লাইনের পরে মঞ্চে। আপনি সোর্সট্রি তে সহজেই 50-100 রেখা মঞ্চ করতে পারেন :)
ryan123

26

ওয়ার্থ লক্ষ করেন, ব্যবহারের git add --patchএকটি জন্য নতুন ফাইল আপনাকে প্রথমে সঙ্গে সূচক ফাইল যুক্ত করতে হবে git add --intent-to-add:

git add -N file
git add -p file

23

যখন আমার অনেক পরিবর্তন হবে, এবং পরিবর্তনগুলি থেকে কিছু প্রতিশ্রুতি তৈরি করা শেষ হবে, তখন আমি জিনিসগুলি স্টেজ করার আগে অস্থায়ীভাবে আমার প্রারম্ভিক পয়েন্টটি সংরক্ষণ করতে চাই।

এটার মত:

$ git stash -u
Saved working directory and index state WIP on master: 47a1413 ...
$ git checkout -p stash
... step through patch hunks
$ git commit -m "message for 1st commit"
$ git checkout -p stash
... step through patch hunks
$ git commit -m "message for 2nd commit"
$ git stash pop

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


12

আপনি যদি ইমাস ব্যবহার করেন তবে ম্যাজিটটি দেখুন , যা ইমাসের জন্য একটি গিট ইন্টারফেস সরবরাহ করে। এটি মজাদার হান্সকে (ফাইলগুলির অংশগুলি) বেশ ভাল সমর্থন করে।


আমি প্রায়শই কোনও এমএক্স শেল উইন্ডোটি থেকে চালনা করে সম্পাদক খোলার জন্য একটি গিট কমান্ড দিয়ে ঘুরে দেখি। ম্যাজিট কি সেই ক্রেজিটাকে বাধা দেয় এবং এর জন্য কেবল একটি নতুন বাফারটি খুলবে? (দয়া করে কোনও ব্যাকগ্রাউন্ড-ইমাসস-ডেমন ইঙ্গিত নেই; ধন্যবাদ যাইহোক তবে জীবন খুব ছোট)।
ব্যবহারকারী 2066657

না, যতদূর আমি এটি বলতে পারি এটির বিরতি নেই। তবে কেবল এটির জন্য আমার শব্দটি গ্রহণ করবেন না কারণ (1) আমি খুব কমই ইম্যাকসে শেল উইন্ডো ব্যবহার করি না এবং (2) আমি সাধারণত ইম্যাক্লিসিয়েন্ট ব্যবহার করি। এই কথাটি বলার পরেও, যদি ইমালস্ক্লিয়েন্টটি আপনার পক্ষে একটি বিকল্প হয় তবে এটি কমপক্ষে ইমাস সহ একটি অতিরিক্ত উইন্ডোটি আটকাতে বাধা দেয় এবং আমার বিদ্যমান ইমাস উইন্ডোতে "COMMIT_EDITMSG" বাফারটি খোলা হয়েছিল।
মার্ক ভ্যান লেন্ট


9

যারা গিট এক্সটেনশান ব্যবহার করেন :

কমিট উইন্ডোতে, আপনি যে ফাইলটি আংশিকভাবে প্রতিশ্রুতিবদ্ধ করতে চান তা নির্বাচন করুন, তারপরে আপনি ডান ফলকে যে পাঠ্য পাঠ করতে চান তা নির্বাচন করুন, তারপরে নির্বাচনের উপর ডান ক্লিক করুন এবং প্রসঙ্গ মেনু থেকে 'পর্যায় নির্বাচিত লাইনগুলি' নির্বাচন করুন।


2
'স্টেজ নির্বাচিত লাইনের' জন্য গিট এক্সটেনশনে কীবোর্ড শর্টকাট হ'ল sকমিটের জন্য ফাইলগুলির অংশগুলি দ্রুত মঞ্চায়নের জন্য খুব দরকারী।
Alchemistmatt

8

জেদস্মসনের উত্তরের মতো আপনি নিজের বর্তমান কাজটিও স্ট্যাশ করতে পারেন তবে স্ট্যাশ থেকে নির্বাচিত পরিবর্তনগুলি টানতে মোল্ডের মতো একটি ডিফ্টল ব্যবহার করতে পারেন। এইভাবে আপনি খুব সহজেই খুব সহজে কুনিদের সম্পাদনা করতে পারেন, এটি যখন থাকে তখন কিছুটা ব্যথা হয় git add -p:

$ git stash -u
$ git difftool -d -t meld stash
$ git commit -a -m "some message"
$ git stash pop

স্ট্যাশ পদ্ধতি ব্যবহার করে আপনি এটি সম্পাদন করার আগে যদি আপনার কোডটি এখনও কাজ করে তবে পরীক্ষার সুযোগ দেয়।


এটি ভালভাবে কাজ করে তবে আপনি যদি ব্যবহার করেন git commit --amendতবে মনে হয় আপনি পরে স্ট্যাশ পপ করতে পারবেন না, বা এটি করার কোনও উপায় আছে?
চিহ্নিত করুন

7

পূর্ববর্তী উত্তরের সাথে যোগ করা, আপনি যদি কমান্ড লাইনটি ব্যবহার করতে পছন্দ করেন git add -e myfileতবে প্রবেশ করানো আপনাকে আপনার প্রতিশ্রুতিবদ্ধ রাখতে চাইলে লাইন বেছে বেছে বেছে বেছে বেছে বেছে দেয় কারণ এই কমান্ডটি পার্থক্য সহ একটি সম্পাদক খুলবে, যেমন:

এখানে চিত্র বর্ণনা লিখুন

আপনি যেমন জানেন যে লাইনগুলি শুরু হয় +সেগুলি হ'ল সংযোজন, লাইনগুলি যা শুরু হয় -তা মুছে ফেলা হয়। তাই:

  • সংযোজন না করার জন্য কেবল সেই লাইনটি মুছুন।
  • একটি মুছে ফেলার পর্যায়ে না রাখার জন্য কেবল স্থান -দিয়ে প্রতিস্থাপন করুন

এভাবেই git add -hফাইল যুক্ত করার বিষয়ে যা বলা হয় (ফাইলগুলিকে প্যাচিং করা হয়):

যুক্ত সামগ্রী যুক্ত করা বিষয়বস্তু "+" থেকে শুরু করে লাইন দ্বারা প্রতিনিধিত্ব করা হয়। আপনি মুছে ফেলা যেকোন অতিরিক্ত লাইন মজুদ রোধ করতে পারেন।

সরানো সামগ্রী: সরানো সামগ্রী "-" থেকে শুরু করে লাইন দ্বারা প্রতিনিধিত্ব করা হয়। আপনি "-" কে "" (স্পেস) এ রূপান্তর করে তাদের অপসারণের স্টেজিং আটকাতে পারবেন।

পরিবর্তিত সামগ্রী: পরিবর্তিত সামগ্রী "-" লাইন (পুরানো সামগ্রী মুছে ফেলা) এর পরে "+" লাইনগুলি (প্রতিস্থাপনের সামগ্রী যুক্ত করে) দ্বারা উপস্থাপিত হয়। আপনি "-" লাইনগুলিকে "" রূপান্তর করে এবং "+" লাইনগুলি সরিয়ে পরিবর্তনটি পর্যায়ক্রমে আটকাতে পারবেন। সাবধান যে জোড়ের অর্ধেকটি সংশোধন করা সূচকে বিভ্রান্তিকর পরিবর্তন আনতে পারে।

সাবধানতা: ফাইলের বিষয়বস্তু পরিবর্তন করবেন না, এটি করার জন্য এটি ভাল জায়গা নয়। কেবল মোছা বা যুক্ত লাইনগুলির অপারেটরগুলি পরিবর্তন করুন।


আগের উত্তর কি? উত্তরগুলি তাদের পয়েন্টের সংখ্যার ভিত্তিতে সংরক্ষণ করা হয়। সুতরাং অন্যান্য উত্তরগুলির তুলনায় আপনি যখন উত্তর লিখেছিলেন তখন তার উত্তর এখনকার চেয়ে আলাদা জায়গায় in
কুলিগিন

আমি বিশ্বাস করি যে রেফারেন্স করা উত্তরটি @ ফ্রিডম বনানা
কে প্রতীক

6

ভিআইএম-গিটগুটার প্লাগইন ভিএম এডিটর ব্যবহার না করেই কৃপণ মঞ্চস্থ করতে পারে

:GitGutterStageHunk

এটির পাশাপাশি এটি কিছু আধুনিক আইডিইয়ের মতো একটি ভিন্ন চিহ্ন কলামের মতো অন্যান্য দুর্দান্ত বৈশিষ্ট্য সরবরাহ করে

যদি কুন্তের কিছু অংশ মঞ্চস্থ করা উচিত ভিম-পলাতক

:Gdiff

ভিজ্যুয়াল রেঞ্জ নির্বাচনের অনুমতি দেয় :'<,'>diffputবা :'<,'>diffgetস্বতন্ত্র লাইনের পরিবর্তনগুলি পর্যায় / ফেরত দেয়।


5

চেষ্টা git add -p filename.xকরেছিলাম, তবে একটি ম্যাকের সাথে আমি gitx ( http://gitx.frim.nl/ বা https://github.com/pieter/gitx ) খুঁজে পেতে চেয়েছিলাম ঠিক যে লাইনে আমি চাইছিলাম তা আরও কম করা যায়।


4

কচ্ছপযুক্ত:

ফাইলটিতে ডান ক্লিক করুন এবং ব্যবহার করুন Context Menu → Restore after commit। এটি ফাইলটি যেমন রয়েছে তেমন একটি অনুলিপি তৈরি করবে। তারপরে আপনি ফাইলটি সম্পাদনা করতে পারেন, যেমন টর্টোজাইজিটমার্জে এবং আপনি যে সমস্ত পরিবর্তন করতে চান না তা পূর্বাবস্থায় ফেরাতে পারেন। এই পরিবর্তনগুলি সংরক্ষণ করার পরে আপনি ফাইলটি প্রতিশ্রুতিবদ্ধ করতে পারেন।


3

জন্য অ্যাটম ব্যবহারকারী, প্যাকেজ GitHub ইন্টারেক্টিভ উপস্থাপনকারী, স্টাইল মধ্যে অন্তর্ভুক্ত git gui। শর্টকাটগুলির জন্য প্যাকেজের ডকুমেন্টেশন দেখুন

অ্যাটম ব্যবহার অন্ধকার ব্যাকগ্রাউন্ডযুক্ত থিমের সাথে কাজ করার অনুমতি দেয় (ডিফল্টরূপে, git guiএকটি সাদা পটভূমি রয়েছে)।


3

এই প্রশ্নটি জিজ্ঞাসা করার পরে 10 বছর কেটে গেছে। এবং আমি আশা করি এই উত্তর কারও পক্ষে কার্যকর হবে। এখানে উত্তরে উল্লিখিত হিসাবে , যেখানে জিইউআই কোনও বিকল্প নয়, অ্যান্ড্রু শাদুরার ক্রিকর্ড এক্সটেনশানটি একটি এনক্রাস উইন্ডো আনতে সহায়তা করে যাতে আমরা প্রতিশ্রুতিবদ্ধ রেখাগুলি নির্বাচন করতে পারি।

নিম্নলিখিত হিসাবে এক্সটেনশন সেট আপ করুন:

git clone https://github.com/andrewshadura/git-crecord
cd git-crecord
./setup.py install
ln -s $PWD/git-crecord ~/.local/bin/git-crecord

আপনার গিট রেপোতে সিডি করুন এবং নীচে এটি প্রার্থনা করুন:

git crecord

এটি নীচের চিত্র হিসাবে ব্যবহার করা যেতে পারে যা ncurses ইন্টারফেস আনতে হবে। এনক্রেস উইন্ডোতে নিম্নলিখিত কীগুলি টিপলে কিছু নির্দিষ্ট ক্রিয়া হবে:

f       hunk toggle fold (arrow keys can also be used)
space   toggle hunk selection
a       toggle commit or amend
c       confirm and open commit window

নমুনা ব্যবহার দেখাচ্ছে স্ক্রিনকাস্টউদাহরণ



2

গিট-মেল্ড-সূচক - ওয়েবসাইট থেকে উদ্ধৃত:

গিট-মেল্ড-সূচক মেল্ড চালায় - বা অন্য কোনও গিট ডিফ্টল (কেডিআইফ 3, ডিফিউজ, ইত্যাদি) - আপনাকে গিট ইনডেক্সে ইন্টারেক্টিভভাবে পরিবর্তনগুলি মঞ্চস্থ করতে দেয় (গিট স্টেজিং এরিয়া হিসাবেও পরিচিত)।

এটি গিট অ্যাড-পি এর কার্যকারিতা এবং গিট অ্যাড - ইন্টারেক্টিভের মতো। কিছু ক্ষেত্রে গিল্ট অ্যাড-পি-এর চেয়ে সহজ / দ্রুত ব্যবহার করা যায়। এটি কারণ মেল্ড আপনাকে অনুমতি দেয়, উদাহরণস্বরূপ:

  • আরও প্রসঙ্গ দেখুন
  • অন্তর্-লাইন পৃথক্ দেখুন
  • হাত দ্বারা সম্পাদনা করুন এবং 'লাইভ' পৃথক আপডেটগুলি দেখুন (প্রতিটি কীপ্রেসের পরে আপডেট করা হয়)
  • আপনি এড়াতে চান এমন প্রতিটি পরিবর্তনে 'এন' না বলে একটি পরিবর্তন নেভিগেট করুন

ব্যবহার

গিট সংগ্রহস্থলে, চালান:

git meld-index

আপনি মেল্ডটি (বা আপনার কনফিগার করা গিট ডিফ্টল) দেখতে পাবেন:

বাম : অস্থায়ী ডিরেক্টরি চালিয়ে যাওয়া ফাইলগুলি আপনার কার্যকারী গাছ থেকে অনুলিপি করা হয়েছে

অধিকার : সূচকের বিষয়বস্তু সহ অস্থায়ী ডিরেক্টরি। এর মধ্যে এমন ফাইলগুলিও অন্তর্ভুক্ত রয়েছে যা এখনও সূচীতে নেই তবে ওয়ার্কিং অনুলিপিতে পরিবর্তিত বা চিহ্নহীন রয়েছে - এই ক্ষেত্রে আপনি হেড থেকে ফাইলের সামগ্রী দেখতে পাবেন।

সুখী না হওয়া পর্যন্ত সূচিটি (ডানদিকে) সম্পাদনা করুন। যখন প্রয়োজন সংরক্ষণ করুন।

আপনি যখন সম্পন্ন করবেন, ঘনিষ্ঠভাবে মেল্ড করুন, এবং গিট-মেল্ড-সূচক আপনি সদ্য সম্পাদনা করেছেন এমন মেল্ডের ডানদিকে অস্থায়ী ডিরেক্টরিটির বিষয়বস্তুগুলির সাথে মেলানোর জন্য সূচকটি আপডেট করবে।


2

যদি এটি Windowsপ্ল্যাটফর্মে থাকে তবে আমার মতে ফাইল থেকে / কয়েক লাইনের git guiখুব ভাল সরঞ্জামstagecommitunstaged

1. হান্ট ওয়াইজ:

  • unstagged Changesবিভাগ থেকে ফাইল নির্বাচন করুন
  • কোডের ডান ক্লিকের অংশ যা মঞ্চস্থ করা দরকার
  • নির্বাচন করা Stage Hunk for commit

২. লাইনের ভিত্তিতে:

  • unstagged Changesবিভাগ থেকে ফাইল নির্বাচন করুন
  • মঞ্চস্থ হওয়ার জন্য লাইন / লাইনগুলি নির্বাচন করুন
  • রাইট ক্লিক করুন এবং নির্বাচন করুন Stage Lines for commit

৩. আপনি কয়েকটি লাইন বাদে সম্পূর্ণ ফাইলটি স্টেজ করতে চান:

  • unstagged Changesবিভাগ থেকে ফাইল নির্বাচন করুন
  • প্রেস Ctrl+T (Stage file to commit)
  • নির্বাচিত ফাইলটি এখন Staged Changesবিভাগে চলে আসে
  • মঞ্চস্থ করা লাইন / লাইন নির্বাচন করুন
  • রাইট ক্লিক করুন এবং নির্বাচন করুন UnStage Lines for commit

1

উপরে একটি উত্তর হিসাবে শো, আপনি ব্যবহার করতে পারেন git add --patch filename.txt

বা সংক্ষিপ্ত রূপ git add -p filename.txt

... তবে ইতিমধ্যে আপনার ভাণ্ডারগুলিতে থাকা ফাইলগুলির জন্য কমিট কমান্ডে সরাসরি --patch পতাকা ব্যবহার করা আরও ভাল (আপনি যদি সাম্প্রতিক পর্যায়ে গিটের যথেষ্ট সংস্করণ ব্যবহার করছেন): git commit --patch filename.txt

... বা আবার, সংক্ষিপ্ত রূপ git commit -p filename.txt

... এবং তারপরে কমিটে অন্তর্ভুক্ত করার জন্য লাইনগুলি বেছে নেওয়ার জন্য উল্লিখিত কীগুলি (y / n ইত্যাদি) ব্যবহার করুন।


এটি আপনাকে git add -p filename.txtত্রুটির জন্য কম জায়গা ছাড়াও কী দেয় ? আপনি যদি আংশিক-ফাইলের পরিবর্তনকে জগাখিচুড়ি করেন, তবে একটি অ্যাড ফিরিয়ে দেওয়া কমিটিকে পূর্বাবস্থায় ফেলার চেয়ে ভাল than
CTMacUser

আমি জানি না কেন, তবে যখন আমি 'এন' বলি তখন লাইনটি অন্তর্ভুক্ত হয়ে যায় .... এবং যখন আমি ২ য় হঙ্কে 'y' বলি তখন এটিও অন্তর্ভুক্ত হয়।
chovy

0

গিট-কোলা একটি দুর্দান্ত জিইউআই এবং এতে অন্তর্নির্মিত বৈশিষ্ট্যও রয়েছে। মঞ্চে চাপতে কেবল লাইনগুলি নির্বাচন করুন S। যদি কোনও নির্বাচন না করা হয় তবে সম্পূর্ণ কান্ড মঞ্চস্থ হয়।

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