由於Git太多東西可以學了,以下這些指令都是很基本的,最常用的,給大家參考:
branch
git branch #查看目前有那些local branch
git branch branch-name #開local branch
git branch -r #查看所有遠端repo的branch
git branch -d #刪除local branch
git branch -D #強制刪除local branch
git push origin :branch-name #刪除遠端branch
push/pull
git pull #將所有遠端的更動都拉下來
git push #將本地所有的commit都推到遠端
git pull origin master/branch #只將該master/branch的變動拉下來
git push origin master/branch #將本端的commit推到遠端的master/branch
checkout
git checkout file-name #將該檔案從在working tree中已經變動的狀態下,拉回至未變動狀態下。
git checkout branch-name #切換到該branch
commit/add
git commit file-name #將file-name commit出去
git commit file-name -m ‘註解’ #將file-name commit ,必且直接寫註解在後面
git add file-name #新增一個untracked file
git add .#新增所有的untracked file
git add -u #更新所有的變動,同時也會刪除所有在working tree已經被刪除的檔案,用這個指令可以免使用git rm一個個刪除
git commit add -m ‘註解’ #將所有變動同時commit add 以及下註解
diff
git diff file-name #查看該檔案修改後有哪些變動
git diff HEAD #查看目前所在位置與repository的差異
show
git show commit #查看給定的commit有何變動
stash
git stash #丟進站存區
git stash pop #拉出暫存區
git stash clear #清空暫存區
reset
git reset commits –hard #回復到該commits之前的狀態,修改過的檔案全部從staging跟working tree中刪除
git reset #將你已經add進staging裡的變動拉回至unstage狀態,但該檔案變動還留在working tree
git reset commits –soft #回復至該commits之前的狀態,但修改過得檔案還留在staging中
註:如果你是下git reset commits –hard , 它的功能會像是git reset commits –soft -> git reset ->git checkout file-name,因為–hard是將你的branch回復到該commits之前,且 所有變動全部從staging跟working tree刪除,而–soft先回復至該commits之前,但檔案都還留在staging , 而reset再將檔案從staging拉回至working tree , checkout則將working tree的變動回復至未變動狀態下,所以這兩者基本上是一樣的。
merge
git cherry-pick hash-number #將某個commit merge
git merge branch-name #合併另一個branch
rm/mv
git rm file-name #刪除該檔案
git mv file-name new-file-name #重新命名該檔案,搬移檔案
others
git status #查看現在狀態,是否有untracked file 或未被commmit的檔案
git log #查看所有commit
git blame file-name #查看誰修改過此檔案
git clone remote-address #將遠端的repo複製一份到local