1. 程式人生 > >常用的GIt指令總結

常用的GIt指令總結

sh-keygen -t rsa

標準操流程 git clone ssh://[email protected]:2222/source/all_in_one.git git checkout -b develop origin/develop git checkout -b gjs_feature develop do something

git pull |- git fetch origin |- git merge origin/當前分支的對應分支

git add . git commit -m ‘some commit’ git checkout develop git merge gjs_feature

resolving conflict git diff branch1 branch2 >>~/coflict.diff

git push develop

install git

sudo apt-get install git

config

git config --global user.name kaku git config --global user.email [email protected]

initial example

git init git status git add readme.md git commit -m ‘update readme.md

’ git checkout -b develop origin/develop git branch -D dev git stash #隱藏工作狀態 git stash apply & git stash drop

git remote

git clone ssh://[email protected]:2222/source/all_in_one.git git clone -b development ssh://[email protected]:2222/source/all_in_one.git git clone -o oth_origin ssh://[email protected]

:2222/source/all_in_one.git git remote [-v] git remote show <主機名> git remote add <主機名> <地址> git remote rm <主機名> git remote rename <原主機名> <新主機名> eg: git remote add origin [email protected]b.com/kakuchange/learnPython.git git push --set-upstream origin master

git fetch

git fetch <遠端主機名> <分支名> git fetch origin master 取回遠端更新後,可在本地主機上新建立分支 git checkout -b newbranch origin/master 或在本地分支上合併遠端分支 git merge origin/master git rebase origin/master

pull遠端指定分支並與當前分支融合

git pull <遠端主機名> <遠端分支名>:<本地分支名> git pull git pull origin develop # 與當前分支merge git pull origin develop:develop git push --force origin強制推送 git pull相當於 -p 在本地刪除遠端已經刪除的分支

檢視工作區和版本庫裡面的區別

git diff readme.md git log git log --pretty=oneline git reflog git log --oneline --graph

版本回退 HEAD指當前版本,HEAD^指前一版本

git reset --hard HEAD^ git reset --hard HEAD~100 git reset --hard 6fcfc89

丟棄工作區改動(回到最近一次commit或add後的狀態)

git checkout – file git checkout – readme.md 回到暫存區或庫中版本! git rm --cached readme.md 從快取區撤回

丟棄暫存區改動(與版本庫同步)

git reset HEAD file

隱藏工作現場

git stash git stash list git stash pop git stash apply [email protected]{0}

push local master

git push <遠端主機名> <本地分支名>:<遠端分支名> git push -u origin master #指定預設主機 git push origin master:master git push 預設push當前分支

檢視遠端分支

git branch -a

刪除遠端分支

git push origin :branch-name

建立追蹤關係

git branch --set-upstream development origin/development

tag

git tag v0.1 git push --tags git push origin :refs/tags/ver0.1

各種取消操作

git rm –cached filename#add之後取消! git command --amend #重新編輯提交message!合併提交! git checkout – readme.md #撤銷本地修改 git reset --hard <commit_ish> #commit後修改回到某個ish位置,連同硬碟(本地修改) git reset --mixed <commit_ish> #修改HEAD,提交記錄變,但檔案變(本地未修改)預設! git reset --soft <commit_ish> #相當於mixed方法後再git add soft (commit) < mixed (commit + add) < hard (commit + add + local working)

rebase

如果是對local 私有的臨時性質的分支,則直接git rebase -i master(梳理歷史資訊比 如合併成一個commit)+git merge產生一個fast forward,最終以一個commit展示在master分支上

merge

marge 特點:自動建立一個新的commit 如果合併的時候遇到衝突,僅需要修改後重新commit 優點:記錄了真實的commit情況,包括每個分支的詳情 缺點:因為每次merge會自動產生一個merge commit,所以在使用一些git 的GUI tools,特別是commit比較頻繁時,看到分支很雜亂。

合併時如果出現衝突需要按照如下步驟解決 1.修改衝突部分 2.git add 3.git rebase --cotinue 4.(如果第三步無效可以執行 git rebase --skip) 5.不要在git add 之後習慣性的執行 git commit命令