tutorial কিভাবে একটি ফাইল git ট্র্যাক করা হয়(শেল প্রস্থান কোড দ্বারা) কিভাবে বলতে হবে?




gitlab (7)

কোন git কমান্ড চালানো এবং এটির প্রস্থান কোডটি পরীক্ষা করে কোন ফাইল ট্র্যাক করা হচ্ছে কিনা তা জানার উপায় আছে?

অন্য কথায়: git একটি ফাইল ট্র্যাকিং হয়?


git log ব্যবহার করে এই সম্পর্কে তথ্য দিতে হবে। ফাইলটি git এ ট্র্যাক করা থাকলে কমান্ডটি কিছু ফলাফল দেখায় (লগ)। অন্যথায় এটা খালি।

উদাহরণস্বরূপ যদি ফাইলটি গিট ট্র্যাক করা হয়,

[email protected]:~/project-repo-directory# git log src/../somefile.js
commit ad9180b772d5c64dcd79a6cbb9487bd2ef08cbfc
Author: User <[email protected]>
Date:   Mon Feb 20 07:45:04 2017 -0600

    fix eslint indentation errors
....
....

ফাইল গিট ট্র্যাক না হয়,

[email protected]:~/project-repo-directory# git log src/../somefile.js
[email protected]:~/project-repo-directory#

আমি আপনার উপর একটি কাস্টম উপনাম সুপারিশ। .gitconfig

আপনি করার উপায় আছে:

1) git কমান্ড দিয়ে:

git config --global alias.check-file <command>

2) সম্পাদনা ~/.gitconfig এবং উপনাম বিভাগে এই লাইন যোগ করুন:

[alias]
    check-file = "!f() { if [ $# -eq 0 ]; then echo 'Filename missing!'; else tracked=$(git ls-files ${1}); if [[ -z ${tracked} ]]; then echo 'File not tracked'; else echo 'File tracked'; fi; fi;  };  f"

একবার কমান্ড (1) বা সংরক্ষিত ফাইল (2) একবার আপনার কর্মক্ষেত্রে আপনি এটি পরীক্ষা করতে পারেন:

$ git check-file
$ Filename missing 

$ git check-file README.md
$ File tracked 

$ git check-file foo
$ File not tracked

চেষ্টা করে দেখুন:

git ls-files --error-unmatch <file name>

ফাইল ট্র্যাক করা হয় না 1 সঙ্গে প্রস্থান করা হবে


সম্পাদনা

যদি আপনি bash থেকে git ব্যবহার করতে চান তবে - --porcelain বিকল্পটি git status করতে হবে:

--porcelain

স্ক্রিপ্টগুলির জন্য একটি স্থিতিশীল, সহজ-পার্সে বিন্যাসে আউটপুট দিন। বর্তমানে এটি - শর্ট আউটপুট সমান, তবে ভবিষ্যতে পরিবর্তন না করার জন্য এটি নিশ্চিত করা হয়েছে, এটি স্ক্রিপ্টগুলির জন্য নিরাপদ করে তোলে।

আউটপুট এই মত দেখাচ্ছে:

> git status --porcelain
 M starthudson.sh
?? bla

অথবা আপনি যদি এক সময়ে শুধুমাত্র একটি ফাইল করেন:

> git status --porcelain bla
?? bla

মূল

একটি করুন:

git status

আপনি কোনও ফাইল আপডেট করা হয়েছে এবং কোনটি অযথাযুক্ত তা উল্লেখ করে প্রতিবেদনটি দেখতে পাবেন।

আপনি দেখতে পারেন bla.sh ট্র্যাক করা এবং সংশোধন করা হয়েছে এবং newbla ট্র্যাক করা হয় না:

# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#
#       modified:   bla.sh
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       newbla
no changes added to commit (use "git add" and/or "git commit -a")

আপনি যদি ত্রুটির বার্তাগুলি সহ আপনার কনসোলটি বন্ধ করতে না চান তবে আপনিও এটি চালাতে পারেন

git ls-files file_name

এবং তারপর ফলাফল চেক। গিট কিছুই ফেরত না, তাহলে ফাইল ট্র্যাক করা হয় না। এটি ট্র্যাক করা হলে, git ফাইল পাথটি ফেরত দেবে।

আপনি স্ক্রিপ্টে এটি একত্রিত করতে চান তবে এটি সহজেই আসে, উদাহরণস্বরূপ PowerShell:

$gitResult = (git ls-files $_) | out-string
if ($gitResult.length -ne 0)
{
    ## do stuff with the tracked file
}

শুধু আমার দুটি সেন্ট:

git ls-files | grep -x relative/path

যেখানে relative/path সমাপ্তি শেলের মধ্যে tab চাপিয়ে relative/path সহজেই নির্ধারণ করা যেতে পারে। একটি অতিরিক্ত যোগ করুন | wc -l একটি 1 বা 0 আউটপুট পেতে | wc -l


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

উদাহরণ স্বরূপ,

git-ls-files test_file.c | grep।

যদি ফাইলটি ট্র্যাক করা হয় তবে একটি শূন্য কোড দিয়ে প্রস্থান করবে, তবে ফাইলটি ট্র্যাক না থাকলে এক প্রস্থান কোডটি প্রস্থান করবে।





git