git 技巧
base
- demo
1.創(chuàng)建本地分支
git branch 分支名吓揪,例如:git branch 2.0.1.20120806
注:2.0.1.20120806是分支名稱,可以隨便定義持灰。
2.切換本地分支
git checkout 分支名,例如從master切換到分支:git checkout 2.0.1.20120806
3.遠(yuǎn)程分支就是本地分支push到服務(wù)器上恨搓。比如master就是一個最典型的遠(yuǎn)程分支(默認(rèn))痹换。
git push origin 2.0.1.20120806
4.遠(yuǎn)程分支和本地分支需要區(qū)分好蝗羊,所以固棚,在從服務(wù)器上拉取特定分支的時候统翩,需要指定遠(yuǎn)程分支的名字。
git checkout --track origin/2.0.1.20120806
注意該命令由于帶有--track參數(shù)此洲,所以要求git1.6.4以上厂汗!這樣git會自動切換到分支。
5.提交分支數(shù)據(jù)到遠(yuǎn)程服務(wù)器
git push origin <local_branch_name>:<remote_branch_name>
例如:
git push origin 2.0.1.20120806:2.0.1.20120806
一般當(dāng)前如果不在該分支時黍翎,使用這種方式提交。如果當(dāng)前在 2.0.1.20120806 分支下艳丛,也可以直接提交
git push
6.刪除遠(yuǎn)程分支
git push origin :develop
項目管理
- 如何只克隆git倉庫中的一個分支匣掸?git clone -b <branch> <remote_repo>
問題解決
demo
git clone只能clone遠(yuǎn)程庫的master分支,無法clone所有分支氮双,解決辦法如下:
- 找一個干凈目錄碰酝,假設(shè)是git_work
- cd git_work
- git clone http://myrepo.xxx.com/project/.git ,這樣在git_work目錄下得到一個project子目錄
- cd project
- git branch -a,列出所有分支名稱如下:
remotes/origin/dev
remotes/origin/release - git checkout -b dev origin/dev戴差,作用是checkout遠(yuǎn)程的dev分支送爸,在本地起名為dev分支,并切換到本地的dev分支
- git checkout -b release origin/release,作用參見上一步解釋
- git checkout dev袭厂,切換回dev分支墨吓,并開始開發(fā)。
顯示某個文件的歷史更改信息
git blame filename.c 顯示文件的每一行是在那個版本最后修改纹磺。
git whatchanged charge.lua 顯示某個文件的每個版本提交信息:提交日期帖烘,提交人員,版本號橄杨,提交備注(沒有修改細(xì)節(jié))
git show 7aee80cd2afe3202143f379ec671917bc86f9771 顯示某個版本的修改詳情
和
git log -p 7aee80cd2afe3202143f379ec671917bc86f9771
git log --pretty=oneline 顯示每個版本都修改了那些文件
git log --pretty=oneline charge.lua 與上一樣秘症,不過每個修改版本都包含了
git show 5aa1be6674ecf6c36a579521708bf6e5efb6795f charge.lua 顯示某個版本的某個文件修改情況