amarduwal / git-tips

Most commonly used git tips and tricks

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

git-tips

git-tips को संग्रह, कृपया contributing.md हेर्नुहोस्, यदि तपाइँ सुझावहरू थप्न चाहानुहुन्छ भने।

English | 中文 | Русский | 한국어 | Tiếng Việt | 日本語

उपकरणहरू:

  • git-tip - यो एक CLI उपकरण हो जुन तपाईं तल प्रस्तुत गरिएका सुझावहरू प्रयास गर्न सक्नुहुनेछ। (Here in Docker container)

P.S: यी सबै आदेशहरू git version 2.7.4 (Apple Git-66) मा परीक्षण गरिएको हो।

हरेक दिन Git का बिस आदेशहरु वा तेस्तै

git help everyday

Git सँग आउने उपयोगि गाइड देखाउँछ

git help -g

सामाग्रिद्वारा खोजि परिवर्तन

git log -S'<a term in the source>'

विशिष्ट फाइलको लागि समयको साथ परिवर्तनहरू देखाउन

git log -p <file_name>

धक्का पछि, इतिहासबाट संवेदनशील डेटा हटाउने

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch <path-to-your-file>' --prune-empty --tag-name-filter cat -- --all && git push origin --force --all

रिमोटसँग सिङ्क गर्ने, स्थानीय परिवर्तनहरू अधिलेखन गर्ने

git fetch origin && git reset --hard origin/master && git clean -f -d

प्रतिबद्धता सम्म सबै फाइलहरूको सूची

git ls-tree --name-only -r <commit-ish>

पहिलो प्रतिबद्धता रद्द गर्ने

git update-ref -d HEAD

रीसेट: असामान्य स्थानीय परिवर्तनहरू सुरक्षित गर्न

git reset --keep <commit>

सबै विवादास्पद फाइलहरू प्रदर्शन गर्ने

git diff --name-only --diff-filter=U

प्रतिबद्धतामा परिवर्तन गरिएका सम्पूर्ण फाइलहरूको सूची

git diff-tree --no-commit-id --name-only -r <commit-ish>

अस्थायी परिवर्तनहरू अन्तिम प्रतिबद्धताको पछिबाट

git diff

परिवर्तन प्रतिबद्धताको लागि तयारी गरियेको

git diff --cached

विकल्पहरू:

git diff --staged

सुचारु र अपरिचित परिवर्तनहरू दुवै हेर्न

git diff HEAD

पहिले नै मास्टरमा मर्ज गरिएक सबै शाखाहरू सूचीबद्ध गर्न

git branch --merged master

चाँडो अघिल्लो शाखामा स्विच गर्न

git checkout -

विकल्पहरू:

git checkout @{-1}

पहिले नै मास्टरसँग मर्ज गरिएको शाखाहरू हटाउन

git branch --merged master | grep -v '^\*' | xargs -n 1 git branch -d

विकल्पहरू:

git branch --merged master | grep -v '^\*\|  master' | xargs -n 1 git branch -d # will not delete master if master is not checked out

सबै शाखाहरू र तिनीहरूका माथिल्लो सूचीहरू, साथै शाखामा अन्तिम प्रतिबद्धता सूचीबद्ध गर्न

git branch -vv

दूरस्थ शाखा ट्र्याक गर्न

git branch -u origin/mybranch

स्थानीय शाखा मेटाउन

git branch -d <local_branchname>

रिमोटको शाखा मेटाउन

git push origin --delete <remote_branchname>

विकल्पहरू:

git push origin :<remote_branchname>
git branch -dr <remote/branch>

स्थानीय ट्याग मेटाउन

git tag -d <tag-name>

रिमोट ट्याग हटाउन

git push origin :refs/tags/<tag-name>

स्थानीय रूपमा संशोधित फाइलहरू HEAD मा पुनर्स्थापित गर्न

git checkout -- <file_name>

उल्टाउनु: विपरीत प्रतिबद्धता गरेर मूल प्रतिबद्धता रद्द गर्नुहोस्

git revert <commit-ish>

रिसेट: रद्द गर्न, निजी शाखा लाई सल्लाह दिन

git reset <commit-ish>

अघिल्लो प्रतिबद्ध टिप्पणी रिवर्ड गर्न

git commit -v --amend

वर्तमान शाखाको प्रतिबद्ध इतिहास हेर्न

git cherry -v master

लेखक संशोधन गर्न।

git commit --amend --author='Author Name <email@address.com>'

ग्लोबल कन्फिगरमा परिवर्तन गरिसके पछि लेखक रिसेट गर्न।

git commit --amend --reset-author --no-edit

रिमोटको URL परिवर्तन गर्न

git remote set-url origin <URL>

सबै रिमोट सन्दर्भहरूको सूची प्राप्त गर्न

git remote

विकल्पहरू:

git remote show

सबै स्थानीय र रिमोट शाखाहरूको सूची प्राप्त गर्न

git branch -a

रिमोटका शाखाहरू मात्र पाउन

git branch -r

सम्पूर्ण फाइलको सट्टामा परिवर्तन गरिएको फाइलको स्टेज भागहरू मात्र

git add -p

Git बाश पूर्ण प्राप्त गर्न

curl -L http://git.io/vfhol > ~/.git-completion.bash && echo '[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash' >> ~/.bashrc

दुई हप्ता भित्र के परिवर्तन भयो?

git log --no-merges --raw --since='2 weeks ago'

विकल्पहरू:

git whatchanged --since='2 weeks ago'

मालिकबाट fork पछि गरियेका सबै प्रतिबद्धहरु

git log --no-merges --stat --reverse master..

cherry-pick प्रयोग गरेर शाखामा प्रतिबद्ध छान्न

git checkout <branch-name> && git cherry-pick <commit-ish>

प्रतिबद्ध-hash समावेश भयेका शाखाहरू फेला पार्न

git branch -a --contains <commit-ish>

विकल्पहरू:

git branch --contains <commit-ish>

Git उपनामहरु

git config --global alias.<handle> <command> 
git config --global alias.st status

बिना प्रतिबद्ध गरि हालैको ट्र्याक गरिएका फाईलहरू बचत गर्न

git stash

विकल्पहरू:

git stash save

अस्थिर परिवर्तनहरूको वर्तमान स्थिति ट्रयाक गरिएका फाइलहरूमा बचत गर्न

git stash -k

विकल्पहरू:

git stash --keep-index
git stash save --keep-index

अवतरण गरिएका फाइलहरू सहित वर्तमान स्थिति बचत गर्न

git stash -u

विकल्पहरू:

git stash save -u
git stash save --include-untracked

सन्देशको साथ वर्तमान स्थिति बचत गर्दै

git stash save <message>

सबै फाईलहरूको हालको स्थिति बचत गर्न (बेवास्ता गरियको, नचाहिने, र ट्र्याक गरिएको)

git stash -a

विकल्पहरू:

git stash --all
git stash save --all

बचत गरिएका सबै stash हरूको सूची

git stash list

Stashed सूचीबाट नहटाई stash लागू गर्न

git stash apply <stash@{n}>

अन्तिम stashed स्थिति लागु गरि stashed सूचीबाट हताउने

git stash pop

विकल्पहरू:

git stash apply stash@{0} && git stash drop stash@{0}

सबै संग्रहित stash हरू हटाउने

git stash clear

विकल्पहरू:

git stash drop <stash@{n}>

stash बाट एकल फाइल लिन

git checkout <stash@{n}> -- <file_path>

विकल्पहरू:

git checkout stash@{0} -- <file_path>

ट्रयाक गरिएका सबै फाइलहरू हेर्न

git ls-files -t

ट्रयाक नगरिएका सबै फाइलहरू हेर्न

git ls-files --others

उपेक्षित सबै फाइलहरू हेर्न

git ls-files --others -i --exclude-standard

भण्डारणबाट नयाँ काम गर्ने रूख सिर्जना गर्न (git 2.5)

git worktree add -b <branch-name> <path> <start-point>

HEAD स्थितिबाट नयाँ काम गर्ने रूख सिर्जना गर्न

git worktree add --detach <path> HEAD

बिना हताई अनट्र्याक फाइलहरू

git rm --cached <file_path>

विकल्पहरू:

git rm --cached -r <directory_path>

अज्ञात फाईलहरू / डाइरेक्टरी मेटाउनु अघि, dry run गरी यी फाईलहरू / डाइरेक्टरीहरूको सूची प्राप्त गर्नुहोस्

git clean -n

दृढतापूर्वक अज्ञात फाइलहरू हटाउन

git clean -f

दृढतापूर्वक अज्ञात डाइरेक्टरी हटाउन

git clean -f -d

सबै सबमोड्यूल अद्यावधिक गर्न

git submodule foreach git pull

विकल्पहरू:

git submodule update --init --recursive
git submodule update --remote

हालको शाखामा सबै प्रतिबद्धहरु देखाउँन जुन अझै मास्टरमा मर्ज गर्न बाकि छ

git cherry -v master

विकल्पहरू:

git cherry -v master <branch-to-be-merged>

शाखा पुन: नामाकरण गर्न

git branch -m <new-branch-name>

विकल्पहरू:

git branch -m [<old-branch-name>] <new-branch-name>

'feature' 'master' मा पुनर्स्थापना गर्न र मास्टर मा विलय गर्न

git rebase master feature && git checkout master && git merge -

Master शाखा संग्रह गर्न

git archive master --format=zip --output=master.zip

प्रतिबद्ध सन्देश परिमार्जन नगरी पछिल्लो प्रतिबद्धता परिमार्जन गर्न

git add --all && git commit --amend --no-edit

रिमोटमा मेटाइएको रिमोट शाखाहरूमा प्रक्षेपण सन्दर्भहरू।

git fetch -p

विकल्पहरू:

git remote prune origin

प्रारम्भिक संशोधनको प्रतिबद्ध hash पुनः प्राप्त गर्न।

 git rev-list --reverse HEAD | head -1

विकल्पहरू:

git rev-list --max-parents=0 HEAD
git log --pretty=oneline | tail -1 | cut -c 1-40
git log --pretty=oneline --reverse | head -1 | cut -c 1-40

संस्करणको रुख कल्पना गर्न।

git log --pretty=oneline --graph --decorate --all

विकल्पहरू:

gitk --all
git log --graph --pretty=format:'%C(auto) %h | %s | %an | %ar%d'

reflogs बाट केवल सर्वेक्षण गरिएको सिद्धान्त सहित पेटीको भिजुअल बनाउन

git log --graph --decorate --oneline $(git rev-list --walk-reflogs --all)

Gh-pages मा git ट्रयाक गरिएको सबफोल्डरको तैनात गर्न

git subtree push --prefix subfolder_name origin gh-pages

सबट्री प्रयोग गरी भण्डारमा परियोजना थप्न

git subtree add --prefix=<directory_name>/<project_name> --squash git@github.com:<username>/<project_name>.git master

सबट्री प्रयोग गरी लिङ्क गरिएको परियोजनाको लागि तपाइँको भण्डारमा नयाँ परिवर्तनहरू प्राप्त गर्न

git subtree pull --prefix=<directory_name>/<project_name> --squash git@github.com:<username>/<project_name>.git master

फाइलमा इतिहास सहित शाखा निर्यात गर्न।

git bundle create <file> <branch-name>

बन्डलबाट आयात गर्न

git clone repo.bundle <repo-dir> -b <branch-name>

वर्तमान शाखाको नाम पाउन।

git rev-parse --abbrev-ref HEAD

फाइल प्रतिबद्धता उपेक्षा गर्न (उदाहरण परिवर्तन)।

git update-index --assume-unchanged Changelog; git commit -a; git update-index --no-assume-unchanged Changelog

पुनरुत्थान गर्नु अघि परिवर्तन गर्न

git rebase --autostash

आईडीद्वारा स्थानीय शाखामा पुल अनुरोध ल्याउन

git fetch origin pull/<id>/head:<branch-name>

विकल्पहरू:

git pull origin pull/<id>/head:<branch-name>

वर्तमान शाखामा हालैको ट्याग देखाउन।

git describe --tags --abbrev=0

इनलाइन शब्द फरक देखाउन।

git diff --word-diff

सामान्य भिन्न उपकरणहरू प्रयोग गरी परिवर्तनहरू देखाउन।

git difftool [-t <tool>] <commit1> <commit2> <path>

ट्रयाक गरिएका फाइलको लागि परिवर्तनहरू विचार नगर्न।

git update-index --assume-unchanged <file_name>

मान अनडू गर्न - अपरिवर्तित।

git update-index --no-assume-unchanged <file_name>

.gitignore मा वर्णन गरिएका फाइलहरू मेटाउन।

git clean -X -f

मेटाइएको फाईल पुनर्स्थापित गर्न।

git checkout <deleting_commit>^ -- <file_path>

विशेष प्रतिबद्धता-hash मा फाइल पुनर्स्थापित गर्न

git checkout <commit-ish> -- <file_path>

तान्द मर्जको सट्टामा सँधै बिराम गर्न।

git config --global pull.rebase true

विकल्पहरू:

#git < 1.7.9
git config --global branch.autosetuprebase always

सबै उपनामहरू र कन्फिगहरू सूचीबद्ध गर्न।

git config --list

Git केस संवेदनशील बनाउन।

git config --global core.ignorecase false

अनुकूलन सम्पादकहरू थप्न।

git config --global core.editor '$EDITOR'

स्वचालित रूपमा टाइपोग्राफ त्रुटिहरू सच्याउन।

git config --global help.autocorrect 1

परिवर्तन रिलीजको अंश थियोकि भनेर जाँच्न।

git name-rev --name-only <SHA-1>

dry-run। (कुनै आदेश जुन dry-run फ्ल्यागलाई समर्थन गर्दछ।)

git clean -fd --dry-run

अघिल्लो प्रतिबद्धताको सुधारको रूपमा प्रतिबद्धता चिन्ह लगाउन।

git commit --fixup <SHA-1>

स्क्वाश फिक्सअप प्रतिबद्धले सामान्य काम गर्छ।

git rebase -i --autosquash

प्रतिबद्धताको समयमा स्टेजिंग क्षेत्र छोड्न।

git commit --only <file_path>

अन्तरक्रियात्मक स्टेजिंग।

git add -i

बेवास्ता गरिएका फाइलहरूको सुचि।

git check-ignore *

बेवास्ता गरिएका फाइलहरूको स्थिति।

git status --ignored

शाखा १ को प्रतिबद्धता जुन शाखा २ मा छैन

git log Branch1 ^Branch2

अन्तिम n प्रतिबद्धहरूको सुचि

git log -<n>

विकल्पहरू:

git log -n <n>

रेकर्ड रिजोल्युसन पुन: प्रयोग गर्न, रेकर्ड गर्न र अघिल्लो द्वन्द्व समाधानहरू पुन: प्रयोग गर्न।

git config --global rerere.enabled 1

सम्पादकमा सबै विच्छेद गरिएका फाइलहरू खोल्न।

git diff --name-only | uniq | xargs $EDITOR

अनपेक्षित वस्तुहरूको संख्या र तिनीहरूको डिस्क खपत गणना गर्न।

git count-objects --human-readable

सबै अपरिचित वस्तुहरू डेटाबेसबाट प्र्यून गर्न।

git gc --prune=now --aggressive

तपाईको कामको भण्डार तुरुन्तै gitweb मा ब्राउज गर्न।

git instaweb [--local] [--httpd=<httpd>] [--port=<port>] [--browser=<browser>]

GPG हस्ताक्षरहरू प्रतिबद्ध लगमा हेर्न

git log --show-signature

विश्वव्यापी कन्फिगरेसनमा प्रविष्टि हटाउन।

git config --global --unset <entry-name>

कुनै पनि इतिहास बिना नयाँ शाखा जाँच गर्न

git checkout --orphan <branch_name>

अर्को शाखाबाट फाईल निकाल्न।

git show <branch_name>:<file_name>

जड र मर्जको प्रतिबद्धहरूको सूची मात्र।

git log --first-parent

अन्तरक्रियात्मक छूटको साथ अघिल्लो दुइवटा अल्पहरू परिवर्तन गर्न।

git rebase --interactive HEAD~2

सबै शाखा सूची WIP हो

git checkout master && git branch --no-merged

बाइनरी खोजको साथ दोषी फेला पार्न

git bisect start                    # Search start 
git bisect bad                      # Set point to bad commit 
git bisect good v2.6.13-rc2         # Set point to good commit|tag 
git bisect bad                      # Say current state is bad 
git bisect good                     # Say current state is good 
git bisect reset                    # Finish search 

पूर्व-प्रतिबद्धता र प्रतिबद्ध-सन्देश गितहुकहरू बाईपास गर्न

git commit --no-verify

प्रतिबद्ध र विशिष्ट फाइलमा भयेको परिवर्तनहरूको सूची (पुन: नामाकरण गरी पनि)

git log --follow -p -- <file_path>

एकल शाखा क्लोन गर्न

git clone -b <branch-name> --single-branch https://github.com/user/repo.git

नयाँ शाखा बनाई स्विच गर्न

git checkout -b <branch-name>

विकल्पहरू:

git branch <branch-name> && git checkout <branch-name>

फाईल मोडहरू परिवर्तनहरूमा उपेक्षा गर्न

git config core.fileMode false

Git को रंगीन टर्मिनल आउटपुट बन्द गर्न

git config --global color.ui false

विशिष्ट रंग सेटिङहरू

git config --global <specific command e.g branch, diff> <true, false or always>

भर्खरै गरिएका प्रतिबद्धहरू द्वारा सबै स्थानीय शाखाहरू देखाउन

git for-each-ref --sort=-committerdate --format='%(refname:short)' refs/heads/

पङ्क्तिबद्ध फाइलहरूमा ढाँचा (regex वा string) सँग मिल्ने लाइनहरू फेला पार्न

git grep --heading --line-number 'foo bar'

भण्डारको एक उछाल प्रतिलिपि क्लोन गर्न

git clone https://github.com/user/repo.git --depth 1

दिइएको पाठको लागि सबै शाखाहरूमा कमिट लग खोज्न

git log --all --grep='<given-text>'

शाखामा पहिलो प्रतिबद्धता पाउन (मास्टरबाट)

git log --oneline master..<branch-name> | tail -1

विकल्पहरू:

git log --reverse master..<branch-name> | head -6

स्टेज गरिएको फाइल अनस्टेजिङ गर्न

git reset HEAD <file-name>

दूरस्थ भण्डारणमा बलले धकेल्न

git push -f <remote-name> <branch-name>

रिमोट नाम थप्ने

git remote add <remote-nickname> <remote-url>

हालै कन्फिगर गरिएको सबै रिमोतहरुको सूचीबद्ध गर्न

git remote -v

दिइएको फाइलको प्रत्येक रेखामा लेखक, समय र अन्तिम संशोधन देखाउन

git blame <file-name>

लेखक र शीर्षक द्वारा गरियेको समूह प्रतिबद्ध

git shortlog

जबरजस्ती धक्का गरे पनि तपाइँले अरूको काम अधिलेखन नगर्न

git push --force-with-lease <remote-name> <branch-name>

प्रयोगकर्ताद्वारा योगदान गरिएका रेखाहरूको संख्या प्रदर्शन गर्न

git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | gawk '{ add += <!-- @doxie.inject start -->; subs += <!-- @doxie.inject end -->; loc += <!-- @doxie.inject start --> - <!-- @doxie.inject end --> } END { printf "added lines: %s removed lines: %s total lines: %s
", add, subs, loc }' -

विकल्पहरू:

git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | awk '{ add += <!-- @doxie.inject start -->; subs += <!-- @doxie.inject end -->; loc += <!-- @doxie.inject start --> - <!-- @doxie.inject end --> } END { printf "added lines: %s, removed lines: %s, total lines: %s
", add, subs, loc }' - # on Mac OSX

उल्टाउन: सम्पूर्ण मर्ज फर्काउन

git revert -m 1 <commit-ish>

शाखामा प्रतिबद्धहरूको संख्या

git rev-list --count <branch-name>

उपनाम: git अन्डो गर्न

git config --global alias.undo '!f() { git reset --hard $(git rev-parse --abbrev-ref HEAD)@{${1-1}}; }; f'

वस्तु टिप्पणीहरू थप्न

git notes add -m 'Note on the previous commit....'

सबै git-नोटहरू देखाउन

git log --show-notes='*'

अर्को भण्डारबाट प्रतिबद्धता लागू गर्न

git --git-dir=<source-dir>/.git format-patch -k -1 --stdout <SHA1> | git am -3 -k

विशिष्ट रिमोट शाखाको सन्दर्भ

git fetch origin master:refs/remotes/origin/mymaster

दुई शाखाहरूको यउतै पूर्वक फेला पार्न

git merge-base <branch-name> <other-branch-name>

अज्ञात git प्रतिबद्धहरुको सूची

git log --branches --not --remotes

विकल्पहरू:

git log @{u}..
git cherry -v

सबै चीजहरू थप्न, तर सेतो खाली ठाँउ परिवर्तन हुने

git diff --ignore-all-space | git apply --cached

स्थानीय / ग्लोबल git कन्फिगर सम्पादन गर्न

git config [--global] --edit

केहि दायरामा दोष दिन

git blame -L <start>,<end>

Git तार्किक चर देखाउन।

git var -l | <variable>

पूर्वनिर्धारित प्याच फाइल।

git format-patch -M upstream..topic

भण्डारको नाम पाउन।

git rev-parse --show-toplevel

मितिको दायरा बीचका लगहरू

git log --since='FEB 1 2017' --until='FEB 14 2017'

लगहरूबाट लेखक बहिष्कार गर्न

git log --perl-regexp --author='^((?!excluded-author-regex).*)

पेन्डिङ परिवर्तनहरूको सारांश उत्पन्न गर्न

git request-pull v1.0 https://git.ko.xz/project master:for-linus

रिमोट भण्डारमा सन्दर्भहरू सूचीबद्ध गर्न

git ls-remote git://git.kernel.org/pub/scm/git/git.git

अनट्र्याक फाइलहरू जगेडा गर्न।

git ls-files --others -i --exclude-standard | xargs zip untracked.zip

सबै git उपनामहरू सूचीबद्ध गर्न

git config -l | grep alias | sed 's/^alias\.//g'

विकल्पहरू:

git config -l | grep alias | cut -d '.' -f 2

Git स्थिति छोटकरिमा हेर्न

git status --short --branch

एक दिन पहिले गरियेको प्रतिबद्धता जाँच गर्न

git checkout master@{yesterday}

रिमोटको भण्डार र ट्रयाकमा नयाँ स्थानीय शाखालाई पुश गर्न

git push -u origin <branch_name>

शाखा आधार परिवर्तन गर्न

git rebase --onto <new_base> <old_base>

रिमोटको लागि HTTP को सट्टा SSH प्रयोग गर्न

git config --global url.'git@github.com:'.insteadOf 'https://github.com/'

About

Most commonly used git tips and tricks