'গিট অ্যাড - প্যাচ' নতুন ফাইল অন্তর্ভুক্ত করতে চান?


104

আমি যখন দৌড়ে যাই git add -p, গিটের জন্য নতুনভাবে তৈরি ফাইলগুলি বেছে নেওয়ার জন্য বেছে নেওয়ার কোনও উপায় কি ??

সুতরাং আমি যদি একটি নতুন ফাইল নামে পরিচিত হয় foo.java, তবে গিট অ্যাড-পি চালান, গিট আমাকে সেই ফাইলের সামগ্রীটি সূচীতে যুক্ত করতে দেয় না।

উত্তর:


77

প্রতিটি নতুন ফাইল দিয়ে এটি করতে, আপনি চালাতে পারেন:

git add -N .
git add -p

আপনি যদি এটি ঘন ঘন ব্যবহার করতে চান তবে আপনি নিজের একটি নাম রাখতে পারেন ~/.bashrc:

alias gapan='git add --intent-to-add . && git add --patch'

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


13
যে কারও জন্য কী ভেবে অবাক git add -Nহচ্ছে, এটি সূচীতে নির্দিষ্ট তালিকাভুক্ত ফাইলগুলি যুক্ত করে, তবে সামগ্রী ছাড়াই।
ওডিন

112

আমি যখন git add -p someNewFile.txtকোনও নতুন ফাইলে (একটি চিহ্নবিহীন ফাইল) চেষ্টা করেছিলাম , গিটটি কেবল আউটপুট ছেড়ে No changes.থামত। আমাকে গিটকে বলতে হয়েছিল যে আমি প্রথমে নতুন ফাইলটি ট্র্যাক করতে চেয়েছিলাম।

git add -N someNewFile.txt
git add -p

তবে যেহেতু ফাইলটি অনিয়ন্ত্রিত ছিল না, তাই এটি এমন এক বিশাল দৈত্য হিসাবে প্রদর্শিত হবে যা বিভক্ত হতে পারে না (কারণ এটি সমস্ত নতুন!)। সুতরাং, তারপরে আমার কান্ডকে ছোট ছোট বিটগুলিতে সম্পাদনা করতে হবে। আপনি যদি তার সাথে পরিচিত না হন তবে শুরু করতে এই রেফারেন্সটি চেকআউট করুন ।

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

Stage this hunk [y,n,q,a,d,/,e,?]?

ধরে নিই যে আপনি পুরো কুন্তি করতে চান না (এবং এইভাবে পুরো ফাইলটি; কারণ আপনি কেন git add -pসে ক্ষেত্রে ব্যবহার করতে চান তা আমি নিশ্চিত নই ?), আপনি eসম্পাদনা করতে চান এমন গিটকে বলার জন্য বিকল্পটি নির্দিষ্ট করতে চাইবেন হুঙ্ক

একবার আপনি গিটকে বলছেন যে আপনি কুঁজাকে সম্পাদনা করতে চান, এটি আপনাকে আপনার পছন্দসই সম্পাদকের মধ্যে ফেলে দেবে যাতে আপনি নিজের পরিবর্তন করতে পারেন। সমস্ত লাইনকে একটি সহ +উপস্থাপিত করা উচিত এবং গিটটি #ফাইলের শেষে কিছু ব্যাখ্যামূলক মন্তব্য থাকতে পারে (এ প্রিফিক্সড )। আপনার ফাইলটির প্রাথমিক প্রতিশ্রুতিতে যে লাইনগুলি আপনি চান না তা কেবল মুছুন। তারপরে সম্পাদকটি সংরক্ষণ করুন এবং প্রস্থান করুন।

গিটের হান্ট বিকল্পগুলির গিটের ব্যাখ্যা:

y - stage this hunk
n - do not stage this hunk
q - quit; do not stage this hunk or any of the remaining ones
a - stage this hunk and all later hunks in the file
d - do not stage this hunk or any of the later hunks in the file
g - select a hunk to go to
/ - search for a hunk matching the given regex
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
k - leave this hunk undecided, see previous undecided hunk
K - leave this hunk undecided, see previous hunk
s - split the current hunk into smaller hunks
e - manually edit the current hunk
? - print help

1
কেউ দয়া করে এর সংক্ষিপ্ত উত্তর দিন।
ইনঙ্ক গুমাস

5
সংক্ষেপে, git add -N someNewFile.txtতারপরেgit add -p
ক্যাটশোস 8:38

7

git add -p ইতিমধ্যে ট্র্যাক করা ফাইলগুলিতে পরিবর্তন যুক্ত করার বিষয়ে।

ইন্টারেক্টিভভাবে ফাইল যুক্ত করার জন্য কমান্ডটি হ'ল git add -i। উদাহরণ স্বরূপ:

$ git add -i

*** Commands ***
  1: status   2: update   3: revert   4: add untracked
  5: patch    6: diff     7: quit     8: help
What now> a
  1: another-new.java
  2: new.java
Add untracked>> 2
  1: another-new.java
* 2: new.java
Add untracked>> 
added one path

*** Commands ***
  1: status   2: update   3: revert   4: add untracked
  5: patch    6: diff     7: quit     8: help
What now> q
Bye.
$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   new.java

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        another-new.java

(আসল কমান্ডের এমন রঙ রয়েছে যা আমি এখানে কাটা-পেস্ট করতে পারি না, সুতরাং এটি দেখতে এটির চেয়ে সুন্দর)

আসলে, পি আট্চ কমান্ডটি git add -iএকই কাজ করে git add -p, তাই দ্বিতীয়টি প্রথমটির একটি উপসেট (যদিও আমি স্বীকার করি আমি নিজেকে ভালবাসি add -pএবং ঘৃণা add -iকরি!)।


"আমি স্বীকার করি আমি অ্যাড-পি পছন্দ করি এবং আমি নিজেই অ্যাডকে ঘৃণা করি!" এই কারণেই গিট অ্যাড তারপর প্যাচ হ'ল এটি আমার পছন্দসই একটি সমাধান: এটি এখনও আপনাকে যুক্ত করা নতুন ফাইলগুলির বিষয়বস্তু যাচাই করার অনুমতি দেয় (যেহেতু আপনি তাদের খালি সংস্করণগুলির সাথে তুলনা করেন) এবং আপনি সম্পাদিত প্যাচ ফাইলগুলি!
ইউলিস বিএন 10

আমি ভুল হলে দয়া করে আমাকে সংশোধন করুন তবে এখানে ইন্টারেক্টিভ মোডেও প্যাচটি এখনও No changes.একটি নতুন ফাইলে আউটপুট হবে । ওপি জিজ্ঞাসা করছিল কিভাবে পুরো ফাইলটি নয়, একটি নতুন ফাইল থেকে কুকুর যুক্ত করতে। আমি বিশ্বাস করি --intent-to-addএখনও এখানে প্রয়োজনীয়।
জেফ পেকেট 18

add -pএকা কাজ করবে না, তবে এই উত্তরটি বলে add -i, যা করে।
ম্যাথিউ ময়

আমি upvoting কারণ আমি জানতাম না git add -i। তবে আপনি একই জিনিসটি অ-ইন্টারেক্টিভভাবে করতে পারেন git add -N
ম্যাড পদার্থবিজ্ঞানী

4

--cachedপতাকাটি ব্যবহারের ক্ষেত্রেও খুব অনুরূপ পন্থা রয়েছে ...

1) আপনার আনস্টেজ করা পরিবর্তনগুলি আপনার যুক্ত হওয়া ফাইলের মতোই মঞ্চে পরিণত করুন।

git add edited-file.txt
git add new-file.txt
git add directory-of-changes/

2) ডিফটি দেখুন (নোট: আপনি সম্পাদনা এবং নতুন ফাইল উভয়ই অন্তর্ভুক্ত করতে পারেন)।

git diff --cached

3) প্যাচ তৈরি করুন।

git diff --cached > my_patch_file.patch

দুর্ভাগ্যক্রমে যে একই উদ্দেশ্য অর্জন করবে না। আমি যা পছন্দ git add -pকরি তা হ'ল এটি সমস্ত কিছু যুক্ত করে না, তবে আসুন আমি বাছাই করে আমি কী যুক্ত করতে চাই তা চয়ন করি। এই সমাধানটি অন্ধভাবে সমস্ত কিছু যুক্ত করবে।
আলেকজান্ডার বার্ড

ভাল আপনি যা যুক্ত করতে পারেন তা বেছে নিতে পারেন! আমি উত্তর আপডেট করব।
ডাবলজোশ

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