網頁

2014年6月20日 星期五

git

以下介紹我常用的git指令:

# 抓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]

# 看目前local有哪些branch
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


結論:
我常用的大概就是這樣吧,理論上應該就足夠了吧 ?

沒有留言:

張貼留言