# 抓server上的某個git project
git clone ssh://[username]@[server dns name]/[directory]/projectname.git
# 建立local branch
(branchname可以從 git la上拿到)
git co -b [branchname] origin/[branchname]
# 砍掉branch
git branch -d [branchname]
git br
# 切換到某個branch
git co [branchname]
# 抓其他branch的commit到這個branch (傳說中的 cherry-pick)
git la //確定是哪一個commit拿到hashcode
git cherry-pick [hash code]
# 抓最新版的code
git pull
or
git pull --rebase
# 和local有conflict的處理方法
git stash
git pull --reabse
git stash pop
#加入某一個file
git add [filename]
#移除某一個 file
git reset [filename]
# 加入這一個目錄以下的所有files以及子目錄
git add .
# 加入這一個目錄以下的所有被修改的files以及子目錄下被修改的files(曾經被commit in的那些files)
git add -u .
# reset all(回到剛抓下來的狀態, 你的修改code會通通消失, 請小心使用)
git reset --hard
# 回到某一個版本
git reset --hard [hashcode]
# 拿到hash code
git la
or
git log
# commit in到local git database
git ci
# 做patch
(如果尚未add)
git df > patchfilename
(如果add了)
git df --cached > patchfilename
(如果commit了)
git show [hashcodename] > patchfilename
# apply patch
patch -p1 < patchfilename
# code review 比較兩個版本
(如果add了)
git difftool --cached -U10
# 修改尚未push commit in的註解
git ci --amend
# revert 之前 commit in的
git revert [hashcode]
# 上傳到git server
git push
結論:
我常用的大概就是這樣吧,理論上應該就足夠了吧 ?
沒有留言:
張貼留言