git - গিটহাব




কিভাবে আমি একটি নতুন স্থানীয় শাখা একটি রিমোট গিট রিপোজিটরিতে ধাক্কা দিই এবং এটিও ট্র্যাক করি? (9)

1.7 এর পূর্বে GitLab সংস্করণের জন্য, ব্যবহার করুন:

git checkout -b name_branch

(name_branch, ex: master)

রিমোট রিপোজিটরিতে এটি ধাক্কা দেওয়ার জন্য, করুন:

git push -u origin name_new_branch

(name_new_branch, উদাহরণ: বৈশিষ্ট্য)

আমি নিম্নলিখিত কাজ করতে সক্ষম হতে চান:

  1. অন্য কোন (দূরবর্তী বা স্থানীয়) শাখার উপর ভিত্তি করে একটি স্থানীয় শাখা তৈরি করুন ( git branch বা git checkout -b )

  2. রিমোট রিপোজিটরি (প্রকাশ) করতে স্থানীয় শাখাকে চাপুন, তবে এটি ট্র্যাকযোগ্য করে তুলুন যাতে git pull এবং git push অবিলম্বে কাজ করবে।

আমি কেমন করে ঐটি করি?

আমি জানি জিট 1.7 --set-upstream , কিন্তু এটি একটি পোস্ট-সৃষ্টি পদক্ষেপ। রিমোট রিপোজিটরিতে শাখা ধাক্কা দিলে আমি একই রকম পরিবর্তন করতে চাই।


আমি একটি উপনাম তৈরি করেছি যাতে যখনই আমি একটি নতুন শাখা তৈরি করি, এটি তত্সহ দূরবর্তী শাখাকে ধাক্কা দেবে এবং ট্র্যাক করবে। আমি .bash_profile ফাইলে নিম্নলিখিত অংশটি রাখি:

# Create a new branch, push to origin and track that remote branch
publishBranch() {
  git checkout -b $1
  git push -u origin $1
}
alias gcb=publishBranch

ব্যবহার : gcb thuy/do-sth-kool দিয়ে gcb thuy/do-sth-kool টাইপ করুন আমার নতুন শাখা নাম।


আমি মনে করি আপনি ইতিমধ্যে একটি প্রকল্প ক্লোন করেছেন:

git clone http://github.com/myproject.git
  1. তারপরে আপনার স্থানীয় অনুলিপিটিতে একটি নতুন শাখা তৈরি করুন এবং এটি পরীক্ষা করে দেখুন:

    git checkout -b <newbranch>
    
  2. আপনি আপনার সার্ভারে একটি "গিট বেয়ার - ইনাট" তৈরি করেছেন এবং myapp.git তৈরি করেছেন বলে মনে করেন, আপনাকে অবশ্যই:

    git remote add origin ssh://example.com/var/git/myapp.git
    git push origin master
    
  3. তারপরে, ব্যবহারকারীদের সক্ষম হতে হবে

    git clone http://example.com/var/git/myapp.git
    

দ্রষ্টব্য: আমি আপনার সার্ভার আপ এবং চলমান আছে অনুমান করছি। যদি না হয়, এটা কাজ করবে না। here কিভাবে একটি ভাল।

যোগ করা হয়েছে

একটি দূরবর্তী শাখা যোগ করুন:

git push origin master:new_feature_name

সবকিছু ভাল কিনা তা পরীক্ষা করুন (আনয়ন আনুষ্ঠানিক এবং তালিকা দূরবর্তী শাখা):

git fetch origin
git branch -r

একটি স্থানীয় শাখা তৈরি করুন এবং দূরবর্তী শাখা ট্র্যাক করুন:

git checkout -tb new_feature_name origin/new_feature_name

সবকিছু আপডেট করুন:

git pull

ইতিমধ্যে এখানে দেওয়া সমাধানগুলির সামান্য পরিবর্তন:

  1. অন্য কোন (দূরবর্তী বা স্থানীয়) শাখার উপর ভিত্তি করে একটি স্থানীয় শাখা তৈরি করুন:

    git checkout -b branchname
    
  2. রিমোট রিপোজিটরি (প্রকাশ) করতে স্থানীয় শাখাকে চাপুন, তবে এটি ট্র্যাকযোগ্য করে তুলুন যাতে git pull এবং git push অবিলম্বে কাজ করবে

    git push -u origin HEAD
    

    HEAD ব্যবহার করে "রিমোটের বর্তমান নামতে বর্তমান শাখাটি ধাক্কা দেওয়ার সহজ উপায়"। উত্স: https://git-scm.com/docs/git-push গিট পদগুলিতে, HEAD (বড় হাতের অক্ষরে) বর্তমান শাখা (গাছ) এর উপরে একটি রেফারেন্স।

    --set-setupstream বিকল্পটি সেট --set-setupstream জন্য মাত্র সংক্ষিপ্ত। এটি বর্তমান শাখাটির জন্য আপস্ট্রিম ট্র্যাকিং রেফারেন্স যোগ করবে। আপনি আপনার .git / config ফাইলটি সন্ধান করে এটি যাচাই করতে পারেন:


এখানে উত্তরগুলির উপর সামান্য তৈরি করা, আমি এই প্রক্রিয়াটিকে একটি সাধারণ বাশ স্ক্রিপ্ট হিসাবে আবৃত করেছি, যা অবশ্যই গিট ওরফে হিসাবে ব্যবহার করা যেতে পারে।

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

$ git_push_new_branch.sh

  Have you run your unit tests yet? If so, pass OK or a branch name, and try again

  usage: git_push_new_branch {OK|BRANCH_NAME}

  e.g.

  git_push_new_branch           -> Displays prompt reminding you to run unit tests
  git_push_new_branch OK        -> Pushes the current branch as a new branch to the origin
  git_push_new_branch MYBRANCH  -> Pushes branch MYBRANCH as a new branch to the origin

git_push_new_branch.sh

function show_help()
{
  IT=$(CAT <<EOF

  Have you run your unit tests yet? If so, pass OK or a branch name, and try again

  usage: git_push_new_branch {OK|BRANCH_NAME}

  e.g.

  git_push_new_branch.sh           -> Displays prompt reminding you to run unit tests
  git_push_new_branch.sh OK        -> Pushes the current branch as a new branch to the origin
  git_push_new_branch.sh MYBRANCH  -> Pushes branch MYBRANCH as a new branch to the origin

  )
  echo "$IT"
  exit
}

if [ -z "$1" ]
then
  show_help
fi

CURR_BRANCH=$(git rev-parse --abbrev-ref HEAD)
if [ "$1" == "OK" ]
then
  BRANCH=$CURR_BRANCH
else
  BRANCH=${1:-$CURR_BRANCH}
fi

git push -u origin $BRANCH

জিট 1.7.0 এবং পরে, আপনি একটি নতুন শাখা চেকআউট করতে পারেন:

git checkout -b <branch>

ফাইল সম্পাদনা, যোগ করুন এবং প্রতিশ্রুতিবদ্ধ। তারপর -u (push --set-upstream জন্য সংক্ষিপ্ত) বিকল্পটি --set-upstream :

git push -u origin <branch>

গিট ধাক্কা সময় ট্র্যাকিং তথ্য সেট আপ করবে।


বিদ্যমান শাখা থেকে বন্ধ শাখা দ্বারা একটি নতুন শাখা তৈরি করতে

git checkout -b <new_branch>

এবং তারপর ব্যবহার করে রিপোজিটরি এই নতুন শাখা ধাক্কা

git push -u origin <new_branch>

এটি একটি নতুন তৈরি হওয়া দূরবর্তী শাখা origin/<new_branch> সমস্ত স্থানীয় origin/<new_branch> তৈরি করে এবং এটিকে ধাক্কা দেয়


যদি আপনি অন্যদের সাথে আপনার রেপো ভাগ করে না থাকেন তবে আপনার সমস্ত শাখাগুলি দূরবর্তী স্থানে এবং --set-upstream ট্র্যাকিং সঠিকভাবে ট্র্যাক করার জন্য এটি দরকারী:

git push --all -u

(ওপিকে ঠিক কি জিজ্ঞাসা করা হয় নি, কিন্তু এই এক-মাছ ধরার নৌকা বেশ জনপ্রিয়)

আপনি যদি অন্যদের সাথে আপনার রেপো ভাগাভাগি করেন তবে এটি আপনার পক্ষে ভাল নয় কারণ আপনার সমস্ত ডোজী পরীক্ষামূলক শাখার সাথে রেপোটি বন্ধ করা হবে।


git push -u প্রবর্তনের পূর্বে, আপনি কি চান তা পেতে কোন git push বিকল্প ছিল। আপনাকে নতুন কনফিগারেশন বিবৃতি যোগ করতে হয়েছিল।

আপনি যদি ব্যবহার করে একটি নতুন শাখা তৈরি করেন:

$ git checkout -b branchB
$ git push origin branchB:branchB

আপনি সরাসরি .git/config ফাইল সম্পাদনা এড়াতে git config কমান্ড ব্যবহার করতে পারেন।

$ git config branch.branchB.remote origin
$ git config branch.branchB.merge refs/heads/branchB

অথবা আপনি এই শাখায় ট্র্যাকিং তথ্য ছিল। .git/config ফাইল ম্যানুয়ালি সম্পাদনা করতে পারেন।

[branch "branchB"]
    remote = origin
    merge = refs/heads/branchB




git-push