ਸਾਰੀਆਂ ਰਿਮੋਟ ਗਿੱਟ ਸ਼ਾਖਾਵਾਂ ਨੂੰ ਕਿਵੇਂ ਕਲੋਨ ਕਰਨਾ ਹੈ

Shell Script

ਕਲੋਨਿੰਗ ਗਿੱਟ ਸ਼ਾਖਾਵਾਂ ਨਾਲ ਸ਼ੁਰੂਆਤ ਕਰਨਾ:

Git ਅਤੇ GitHub ਨਾਲ ਕੰਮ ਕਰਦੇ ਸਮੇਂ, ਤੁਹਾਨੂੰ ਅਕਸਰ ਵਿਕਾਸ ਦੇ ਉਦੇਸ਼ਾਂ ਲਈ ਆਪਣੀ ਸਥਾਨਕ ਮਸ਼ੀਨ ਲਈ ਕਈ ਸ਼ਾਖਾਵਾਂ ਨੂੰ ਕਲੋਨ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਸਿਰਫ਼ ਮਾਸਟਰ ਜਾਂ ਮੁੱਖ ਸ਼ਾਖਾ ਦਾ ਕਲੋਨ ਕਰਨਾ ਸਿੱਧਾ ਹੈ, ਪਰ ਉਦੋਂ ਕੀ ਜੇ ਤੁਹਾਨੂੰ ਆਪਣੀ ਵਿਕਾਸ ਸ਼ਾਖਾ ਸਮੇਤ ਸਾਰੀਆਂ ਸ਼ਾਖਾਵਾਂ ਨੂੰ ਕਲੋਨ ਕਰਨ ਦੀ ਲੋੜ ਹੈ?

ਇਹ ਲੇਖ ਇੱਕ ਗਿੱਟ ਰਿਪੋਜ਼ਟਰੀ ਤੋਂ ਸਾਰੀਆਂ ਰਿਮੋਟ ਸ਼ਾਖਾਵਾਂ ਨੂੰ ਕਲੋਨ ਕਰਨ ਦੀ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਤੁਹਾਡੀ ਅਗਵਾਈ ਕਰੇਗਾ। ਇਹਨਾਂ ਕਦਮਾਂ ਦੀ ਪਾਲਣਾ ਕਰਕੇ, ਤੁਸੀਂ ਇਹ ਯਕੀਨੀ ਬਣਾ ਸਕਦੇ ਹੋ ਕਿ ਤੁਹਾਡੀਆਂ ਮਾਸਟਰ ਅਤੇ ਵਿਕਾਸ ਸ਼ਾਖਾਵਾਂ, ਕਿਸੇ ਹੋਰ ਦੇ ਨਾਲ, ਸਥਾਨਕ ਤੌਰ 'ਤੇ ਉਪਲਬਧ ਹਨ।

ਹੁਕਮ ਵਰਣਨ
git branch -r ਰਿਪੋਜ਼ਟਰੀ ਵਿੱਚ ਸਾਰੀਆਂ ਰਿਮੋਟ ਸ਼ਾਖਾਵਾਂ ਨੂੰ ਸੂਚੀਬੱਧ ਕਰਦਾ ਹੈ।
git branch --track ਇੱਕ ਨਵੀਂ ਸਥਾਨਕ ਸ਼ਾਖਾ ਬਣਾਉਂਦਾ ਹੈ ਜੋ ਇੱਕ ਰਿਮੋਟ ਸ਼ਾਖਾ ਨੂੰ ਟਰੈਕ ਕਰਦੀ ਹੈ।
git fetch --all ਰਿਪੋਜ਼ਟਰੀ ਵਿੱਚ ਸਾਰੇ ਰਿਮੋਟ ਲਈ ਅੱਪਡੇਟ ਲਿਆਉਂਦਾ ਹੈ।
basename -s .git .git ਪਿਛੇਤਰ ਨੂੰ ਹਟਾ ਕੇ, ਇਸਦੇ URL ਤੋਂ ਰਿਪੋਜ਼ਟਰੀ ਨਾਮ ਨੂੰ ਐਕਸਟਰੈਕਟ ਕਰਦਾ ਹੈ।
subprocess.check_output ਇੱਕ ਕਮਾਂਡ ਚਲਾਉਂਦਾ ਹੈ ਅਤੇ ਇੱਕ ਸਤਰ ਦੇ ਰੂਪ ਵਿੱਚ ਇਸਦਾ ਆਉਟਪੁੱਟ ਵਾਪਸ ਕਰਦਾ ਹੈ।
subprocess.run ਇੱਕ ਕਮਾਂਡ ਚਲਾਉਂਦਾ ਹੈ ਅਤੇ ਇਸਦੇ ਪੂਰਾ ਹੋਣ ਦੀ ਉਡੀਕ ਕਰਦਾ ਹੈ।

ਕਲੋਨਿੰਗ ਗਿੱਟ ਸ਼ਾਖਾਵਾਂ ਲਈ ਸਕ੍ਰਿਪਟਾਂ ਨੂੰ ਸਮਝਣਾ

ਉੱਪਰ ਦਿੱਤੀਆਂ ਗਈਆਂ ਸਕ੍ਰਿਪਟਾਂ ਇੱਕ ਗਿਟ ਰਿਪੋਜ਼ਟਰੀ ਤੋਂ ਸਾਰੀਆਂ ਰਿਮੋਟ ਸ਼ਾਖਾਵਾਂ ਨੂੰ ਕਲੋਨ ਕਰਨ ਦੀ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਸਵੈਚਾਲਤ ਕਰਦੀਆਂ ਹਨ। ਸ਼ੈੱਲ ਸਕ੍ਰਿਪਟ ਇਹ ਜਾਂਚ ਕੇ ਸ਼ੁਰੂ ਹੁੰਦੀ ਹੈ ਕਿ ਕੀ ਇੱਕ ਰਿਪੋਜ਼ਟਰੀ URL ਦਿੱਤਾ ਗਿਆ ਹੈ। ਇਹ ਫਿਰ ਰਿਪੋਜ਼ਟਰੀ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕਲੋਨ ਕਰਦਾ ਹੈ ਅਤੇ ਕਲੋਨ ਕੀਤੇ ਰਿਪੋਜ਼ਟਰੀ ਦੀ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਨੈਵੀਗੇਟ ਕਰਦਾ ਹੈ। ਸਕ੍ਰਿਪਟ ਸਾਰੀਆਂ ਰਿਮੋਟ ਸ਼ਾਖਾਵਾਂ ਨੂੰ ਸੂਚੀਬੱਧ ਕਰਦੀ ਹੈ ਅਤੇ ਵਰਤਦੇ ਹੋਏ ਅਨੁਸਾਰੀ ਸਥਾਨਕ ਸ਼ਾਖਾਵਾਂ ਬਣਾਉਂਦਾ ਹੈ . ਅੰਤ ਵਿੱਚ, ਇਹ ਨਾਲ ਸਾਰੀਆਂ ਸ਼ਾਖਾਵਾਂ ਲਈ ਅੱਪਡੇਟ ਲਿਆਉਂਦਾ ਹੈ git fetch --all ਅਤੇ ਵਰਤ ਕੇ ਨਵੀਨਤਮ ਤਬਦੀਲੀਆਂ ਖਿੱਚਦਾ ਹੈ .

ਪਾਈਥਨ ਸਕ੍ਰਿਪਟ ਇੱਕ ਸਮਾਨ ਹੱਲ ਪੇਸ਼ ਕਰਦੀ ਹੈ ਪਰ ਗਿੱਟ ਕਮਾਂਡਾਂ ਨੂੰ ਚਲਾਉਣ ਲਈ ਪਾਈਥਨ ਦੇ ਸਬਪ੍ਰੋਸੈਸ ਮੋਡੀਊਲ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ। ਇਹ ਰਿਪੋਜ਼ਟਰੀ ਨੂੰ ਕਲੋਨ ਕਰਕੇ ਅਤੇ ਫਿਰ ਸਾਰੀਆਂ ਰਿਮੋਟ ਸ਼ਾਖਾਵਾਂ ਨੂੰ ਸੂਚੀਬੱਧ ਕਰਕੇ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ। ਹਰੇਕ ਬ੍ਰਾਂਚ ਲਈ, ਇਹ ਇੱਕ ਸਥਾਨਕ ਸ਼ਾਖਾ ਬਣਾਉਂਦਾ ਹੈ ਜੋ ਰਿਮੋਟ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਟਰੈਕ ਕਰਦਾ ਹੈ . ਸਕ੍ਰਿਪਟ ਫਿਰ ਸਾਰੀਆਂ ਸ਼ਾਖਾਵਾਂ ਲਈ ਅੱਪਡੇਟ ਲਿਆਉਂਦੀ ਹੈ ਅਤੇ ਖਿੱਚਦੀ ਹੈ। ਦੋਵੇਂ ਸਕ੍ਰਿਪਟਾਂ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀਆਂ ਹਨ ਕਿ ਸਾਰੀਆਂ ਰਿਮੋਟ ਸ਼ਾਖਾਵਾਂ ਸਥਾਨਕ ਤੌਰ 'ਤੇ ਉਪਲਬਧ ਹਨ, ਆਸਾਨ ਵਿਕਾਸ ਅਤੇ ਸਹਿਯੋਗ ਦੀ ਸਹੂਲਤ।

ਸਾਰੀਆਂ ਰਿਮੋਟ ਗਿੱਟ ਸ਼ਾਖਾਵਾਂ ਨੂੰ ਕੁਸ਼ਲਤਾ ਨਾਲ ਕਲੋਨ ਕਰੋ

ਸ਼ੈੱਲ ਸਕ੍ਰਿਪਟ

#!/bin/bash
# Clone all remote branches from a Git repository
# Usage: ./clone_all_branches.sh [repository_url]

if [ -z "$1" ]; then
  echo "Usage: $0 [repository_url]"
  exit 1
fi

REPO_URL=$1
REPO_NAME=$(basename -s .git $REPO_URL)

git clone $REPO_URL
cd $REPO_NAME || exit

for branch in $(git branch -r | grep -v '\->'); do
  git branch --track ${branch#origin/} $branch
done

git fetch --all
git pull --all

ਪਾਈਥਨ ਨਾਲ ਆਟੋਮੈਟਿਕ ਬ੍ਰਾਂਚ ਕਲੋਨਿੰਗ

ਪਾਈਥਨ ਸਕ੍ਰਿਪਟ

import os
import sys
import subprocess

def clone_all_branches(repo_url):
    repo_name = os.path.basename(repo_url).replace('.git', '')
    subprocess.run(['git', 'clone', repo_url])
    os.chdir(repo_name)
    branches = subprocess.check_output(['git', 'branch', '-r']).decode().split()
    for branch in branches:
        if '->' not in branch:
            local_branch = branch.replace('origin/', '')
            subprocess.run(['git', 'branch', '--track', local_branch, branch])
    subprocess.run(['git', 'fetch', '--all'])
    subprocess.run(['git', 'pull', '--all'])

if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("Usage: python clone_all_branches.py [repository_url]")
        sys.exit(1)
    clone_all_branches(sys.argv[1])

ਐਡਵਾਂਸਡ ਗਿੱਟ ਸ਼ਾਖਾ ਪ੍ਰਬੰਧਨ ਦੀ ਪੜਚੋਲ ਕਰਨਾ

Git ਨਾਲ ਕੰਮ ਕਰਨ ਦਾ ਇੱਕ ਹੋਰ ਮਹੱਤਵਪੂਰਨ ਪਹਿਲੂ ਸ਼ਾਖਾਵਾਂ ਦਾ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਨਾਲ ਪ੍ਰਬੰਧਨ ਕਰਨਾ ਹੈ। ਸਾਰੀਆਂ ਰਿਮੋਟ ਸ਼ਾਖਾਵਾਂ ਨੂੰ ਕਲੋਨ ਕਰਨ ਤੋਂ ਇਲਾਵਾ, ਇਹ ਸਮਝਣਾ ਮਹੱਤਵਪੂਰਨ ਹੈ ਕਿ ਇਹਨਾਂ ਸ਼ਾਖਾਵਾਂ ਨੂੰ ਕਿਵੇਂ ਅਪ-ਟੂ-ਡੇਟ ਰੱਖਣਾ ਹੈ ਅਤੇ ਵਿਕਾਸ ਦੌਰਾਨ ਪੈਦਾ ਹੋਣ ਵਾਲੇ ਵਿਵਾਦਾਂ ਨੂੰ ਕਿਵੇਂ ਸੰਭਾਲਣਾ ਹੈ। ਰਿਮੋਟ ਰਿਪੋਜ਼ਟਰੀ ਤੋਂ ਨਿਯਮਿਤ ਤੌਰ 'ਤੇ ਤਬਦੀਲੀਆਂ ਲਿਆਉਣਾ ਅਤੇ ਖਿੱਚਣਾ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਤੁਹਾਡੀਆਂ ਸਥਾਨਕ ਸ਼ਾਖਾਵਾਂ ਨਵੀਨਤਮ ਅਪਡੇਟਾਂ ਨੂੰ ਦਰਸਾਉਂਦੀਆਂ ਹਨ।

ਇਸ ਤੋਂ ਇਲਾਵਾ, ਬ੍ਰਾਂਚਾਂ ਨੂੰ ਰੀਬੇਸ ਅਤੇ ਮਿਲਾਉਣ ਬਾਰੇ ਜਾਣਨਾ ਇੱਕ ਸਾਫ਼ ਪ੍ਰੋਜੈਕਟ ਇਤਿਹਾਸ ਨੂੰ ਬਣਾਈ ਰੱਖਣ ਵਿੱਚ ਮਦਦ ਕਰ ਸਕਦਾ ਹੈ। ਰੀਬੇਸਿੰਗ ਤੁਹਾਨੂੰ ਕਮਿਟ ਨੂੰ ਮੂਵ ਕਰਨ ਜਾਂ ਜੋੜਨ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ, ਜਦੋਂ ਕਿ ਅਭੇਦ ਇੱਕ ਸ਼ਾਖਾ ਤੋਂ ਦੂਜੀ ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਨੂੰ ਏਕੀਕ੍ਰਿਤ ਕਰਦਾ ਹੈ। ਦੋਵੇਂ ਤਕਨੀਕਾਂ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਸਹਿਯੋਗ ਲਈ ਜ਼ਰੂਰੀ ਹਨ ਅਤੇ ਵੱਡੇ ਪ੍ਰੋਜੈਕਟਾਂ ਵਿੱਚ ਇੱਕ ਨਿਰਵਿਘਨ ਵਰਕਫਲੋ ਬਣਾਈ ਰੱਖਣ ਲਈ ਜ਼ਰੂਰੀ ਹਨ।

  1. ਮੈਂ ਇੱਕ ਗਿੱਟ ਰਿਪੋਜ਼ਟਰੀ ਵਿੱਚ ਸਾਰੀਆਂ ਸ਼ਾਖਾਵਾਂ ਨੂੰ ਕਿਵੇਂ ਸੂਚੀਬੱਧ ਕਰਾਂ?
  2. ਤੁਸੀਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸਾਰੀਆਂ ਸ਼ਾਖਾਵਾਂ ਨੂੰ ਸੂਚੀਬੱਧ ਕਰ ਸਕਦੇ ਹੋ ਹੁਕਮ.
  3. ਮੈਂ ਰਿਮੋਟ ਰਿਪੋਜ਼ਟਰੀ ਤੋਂ ਅੱਪਡੇਟ ਕਿਵੇਂ ਪ੍ਰਾਪਤ ਕਰਾਂ?
  4. ਦੀ ਵਰਤੋਂ ਕਰੋ ਰਿਮੋਟ ਰਿਪੋਜ਼ਟਰੀ ਤੋਂ ਅੱਪਡੇਟ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਕਮਾਂਡ।
  5. ਪ੍ਰਾਪਤ ਕਰਨ ਅਤੇ ਖਿੱਚਣ ਵਿੱਚ ਕੀ ਅੰਤਰ ਹੈ?
  6. ਰਿਮੋਟ ਸ਼ਾਖਾਵਾਂ ਦੀ ਤੁਹਾਡੀ ਸਥਾਨਕ ਕਾਪੀ ਨੂੰ ਅਪਡੇਟ ਕਰਦਾ ਹੈ, ਜਦੋਂ ਕਿ ਅਜਿਹਾ ਕਰਦਾ ਹੈ ਅਤੇ ਰਿਮੋਟ ਬ੍ਰਾਂਚ ਤੋਂ ਕਿਸੇ ਵੀ ਨਵੇਂ ਕਮਿਟ ਨਾਲ ਤੁਹਾਡੀ ਮੌਜੂਦਾ ਸ਼ਾਖਾ ਨੂੰ ਵੀ ਅੱਪਡੇਟ ਕਰਦਾ ਹੈ।
  7. ਮੈਂ ਨਵੀਂ ਸ਼ਾਖਾ ਕਿਵੇਂ ਬਣਾਵਾਂ?
  8. ਦੀ ਵਰਤੋਂ ਕਰੋ ਇੱਕ ਨਵੀਂ ਸ਼ਾਖਾ ਬਣਾਉਣ ਲਈ ਕਮਾਂਡ.
  9. ਮੈਂ ਇੱਕ ਵੱਖਰੀ ਸ਼ਾਖਾ ਵਿੱਚ ਕਿਵੇਂ ਬਦਲ ਸਕਦਾ ਹਾਂ?
  10. ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਤੁਸੀਂ ਕਿਸੇ ਹੋਰ ਸ਼ਾਖਾ ਵਿੱਚ ਜਾ ਸਕਦੇ ਹੋ ਹੁਕਮ.
  11. ਮੈਂ Git ਵਿੱਚ ਸ਼ਾਖਾਵਾਂ ਨੂੰ ਕਿਵੇਂ ਮਿਲਾਵਾਂ?
  12. ਸ਼ਾਖਾਵਾਂ ਨੂੰ ਮਿਲਾਉਣ ਲਈ, ਦੀ ਵਰਤੋਂ ਕਰੋ ਜਦੋਂ ਤੁਸੀਂ ਬ੍ਰਾਂਚ ਵਿੱਚ ਅਭੇਦ ਹੋਣਾ ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ ਕਮਾਂਡ ਦਿਓ।
  13. Git ਵਿੱਚ ਰੀਬੇਸਿੰਗ ਕੀ ਹੈ?
  14. ਰੀਬੇਸਿੰਗ ਇੱਕ ਨਵੀਂ ਬੇਸ ਕਮਿਟ ਵਿੱਚ ਕਮਿਟ ਦੇ ਕ੍ਰਮ ਨੂੰ ਹਿਲਾਉਣ ਜਾਂ ਜੋੜਨ ਦੀ ਪ੍ਰਕਿਰਿਆ ਹੈ, ਜੋ ਕਿ ਹੁਕਮ.
  15. ਮੈਂ ਗਿਟ ਵਿੱਚ ਵਿਵਾਦਾਂ ਨੂੰ ਕਿਵੇਂ ਹੱਲ ਕਰਾਂ?
  16. ਟਕਰਾਅ ਵਾਲੀਆਂ ਫਾਈਲਾਂ ਨੂੰ ਹੱਥੀਂ ਸੰਪਾਦਿਤ ਕਰਕੇ ਅਤੇ ਫਿਰ ਵਰਤ ਕੇ ਵਿਵਾਦਾਂ ਨੂੰ ਹੱਲ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਉਹਨਾਂ ਨੂੰ ਹੱਲ ਕੀਤੇ ਵਜੋਂ ਚਿੰਨ੍ਹਿਤ ਕਰਨ ਲਈ, ਇਸਦੇ ਬਾਅਦ .
  17. ਮੈਂ ਸਥਾਨਕ ਸ਼ਾਖਾ ਨੂੰ ਕਿਵੇਂ ਮਿਟਾਵਾਂ?
  18. ਇੱਕ ਸਥਾਨਕ ਸ਼ਾਖਾ ਨੂੰ ਮਿਟਾਉਣ ਲਈ, ਦੀ ਵਰਤੋਂ ਕਰੋ ਹੁਕਮ.

ਗਿਟ ਬ੍ਰਾਂਚ ਕਲੋਨਿੰਗ ਤਕਨੀਕਾਂ ਨੂੰ ਸਮੇਟਣਾ

Git ਵਿੱਚ ਸਾਰੀਆਂ ਰਿਮੋਟ ਸ਼ਾਖਾਵਾਂ ਨੂੰ ਕਲੋਨ ਕਰਨਾ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਤੁਹਾਡਾ ਵਿਕਾਸ ਵਾਤਾਵਰਣ ਰਿਪੋਜ਼ਟਰੀ ਨਾਲ ਪੂਰੀ ਤਰ੍ਹਾਂ ਸਮਕਾਲੀ ਹੈ। ਪ੍ਰਦਾਨ ਕੀਤੀਆਂ ਸਕ੍ਰਿਪਟਾਂ ਸਥਾਨਕ ਸ਼ਾਖਾਵਾਂ ਦੀ ਰਚਨਾ ਅਤੇ ਟਰੈਕਿੰਗ ਨੂੰ ਸਵੈਚਾਲਤ ਕਰਕੇ ਇਸ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਸਹਿਜ ਬਣਾਉਂਦੀਆਂ ਹਨ। ਨਿਰਵਿਘਨ ਸਹਿਯੋਗ ਅਤੇ ਟਕਰਾਅ ਤੋਂ ਬਚਣ ਲਈ ਆਪਣੀਆਂ ਸ਼ਾਖਾਵਾਂ ਨੂੰ ਨਿਯਮਤ ਫੈਚ ਅਤੇ ਪੁੱਲ ਓਪਰੇਸ਼ਨਾਂ ਨਾਲ ਅਪਡੇਟ ਰੱਖਣਾ ਮਹੱਤਵਪੂਰਨ ਹੈ।

ਬ੍ਰਾਂਚ ਪ੍ਰਬੰਧਨ ਲਈ ਵੱਖ-ਵੱਖ ਕਮਾਂਡਾਂ ਅਤੇ ਤਕਨੀਕਾਂ ਨੂੰ ਸਮਝ ਕੇ ਅਤੇ ਉਹਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ, ਤੁਸੀਂ ਇੱਕ ਕੁਸ਼ਲ ਅਤੇ ਸੰਗਠਿਤ ਵਰਕਫਲੋ ਨੂੰ ਬਣਾਈ ਰੱਖ ਸਕਦੇ ਹੋ। ਇਹ ਪਹੁੰਚ ਨਾ ਸਿਰਫ ਸਮੇਂ ਦੀ ਬਚਤ ਕਰਦੀ ਹੈ ਬਲਕਿ ਗਲਤੀਆਂ ਦੇ ਜੋਖਮ ਨੂੰ ਵੀ ਘਟਾਉਂਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਕਈ ਸਹਿਯੋਗੀਆਂ ਨਾਲ ਗੁੰਝਲਦਾਰ ਪ੍ਰੋਜੈਕਟਾਂ 'ਤੇ ਕੰਮ ਕਰਨਾ ਆਸਾਨ ਹੋ ਜਾਂਦਾ ਹੈ।