git clone 代碼庫地址
git branch -r 查看遠程分支
git branch 查看本地分支
git branch -a 查看遠程和本地分支。帶*的表示正在所處分支。
git branch branch_name 建立一個分支(是在當前分支HEAD上建立)
git checkout branch_name 切換到另一個分支
git checkout -b branch_name origin/branch_name 建立和遠程分支追蹤關系的本地分支
git checkout -- filename 撤銷工作目錄的改動(已經在版本管理,但還沒提交到暫存區的文件)
怎樣獲取遠程或本地分支的某個文件到當前分支呢?
git merge不可以,它只能merge分支
此時可以使用git checkout 命令。
git checkout 遠程/本地分支名稱 指定文件
這樣就可以獲取到某分支的指定文件到當前分支了,並且不會發生切換分支。
git reset HEAD filename 撤銷暫存區的改動
git reset 版本號 回退到某個版本,留有文件修改(例子:文件已經commit到本地版本庫,想回退到上一個版本 git reset HEAD^ 版本號可在git log中查看) --hard 硬回退
一個例子:
commit了兩個提交,並push到了遠程庫。發現最后一次的commit不對,想回到上一個commit。這時候執行 git reset HEAD^,回到了上一次的版本。這就落后了遠端分支一個提交, git log 看是缺少了后悔的那個提交點,這樣直接push到遠程是不可以的。
這時候可以執行 git reset origin/xx,同步本地分支和遠程分支(但不會丟失本地更改),此時git log可以看到commit點都回來了。然后再git add /commit/push
git revert HEAD 撤銷當前版本的修改,表示回到上一個版本。revert是作為新的commit
git diff 這個命令可以diff各種不同
git diff 默認是比較當前工作目錄和暫存區(git必須要知道暫存區的概念)的不同
git diff --cached 比較暫存區和版本庫的不同
git diff HEAD 比較工作目錄和版本庫的差異
git diff --stat 只看統計哪些文件差異,不看具體內容差異
git diff HEAD origin/branch_name filename 比較當前分支和遠程分支上這個file的不同
git add
git commit -m 'xx'
git log 查看commit信息
git log --pretty=oneline 很多個commit信息,直接查看commit id,比較方便
如果查看某一個文件的修改歷史,可以這樣:
git log filename (git log --pretty=oneline filename) ,通過列出的commitid,再執行git show commitid,查看具體修改歷史
git show commitid 查看某次提交的信息
git branch --set-upstream master origin/master 設立追蹤關系 本地和遠程分支
git pull 遠程名 遠程分支名稱:本地分支名稱
省略本地分支名,表示當前所在分支;
如果建立了追蹤關系,可以省略分支名稱
git push 遠程名 本地分支名稱:遠程分支名稱
如果省略遠程分支名稱,就是把本地分支推送到遠程,如果沒有,就在遠程新建;如果只省略本地分支,表示刪除遠程分支。
如果有追蹤關系,可以省略倆名稱
git merge branchname 在當前分支上合並branchname
git tag tagname 在當前分支的commit版本上打一個tag。tag和某個commit id對應的
git tag 查看各個tag
git show tagname 查看該tagname信息
git stash [save message] 保存當前進度,工作區恢復到當前HEAD版本內容。很方便於當前改的東西存檔,去fix其他東西。
git stash list 查看stash的列表
git stash pop 彈出最新的stash。比如修復完,回到之前改的。
在開發過程中,有可能產生附帶的緩存文件,在部署到服務器時是沒用的。此時可以在版本庫中添加一個.gitignore文件。
比如以.dat為后綴的文件不想要提示是否添加了。在.gitignore文件中行內容寫上.dat即可。
如果不希望自己的.gitignore文件上傳,可以在該文件再追加一行.gitignore。
git的命令可以使用別名簡化,比如每次git commit,checkout等,單詞較長。可以給他們起個別名。
在.git/config文件中添加。比如幾個命令:
[alias] co = checkout ci = commit br = branch st = status
在.git/config中配置,只是在當前git代碼庫生效,如果該用戶下都生效,需要在~/.gitconfig 中配置,或者命令如git config --global即可
比如:
git diff如何使用vimdiff形式查看diff文件?
git config --global diff.tool vimdiff git config --global difftool.prompt false git config --global alias.d difftool
利用git d 執行即可