git 命令
文件的狀態(tài)變化周期
檢查當(dāng)前文件狀態(tài)
$ git status
跟蹤新文件
$ git add README //READ ME進(jìn)入已暫存狀態(tài)
狀態(tài)簡(jiǎn)覽
$ git status -s
M README
MM Rakefile
A lib/git.rb
M lib/simplegit.rb
?? LICENSE.txt
忽略文件
.gitignore
$ cat .gitignore
*.[oa] //忽略所有以 .o 或 .a 結(jié)尾的文件
*~ //忽略所有以波浪符(~)結(jié)尾的文件
查看已暫存和未暫存的修改
git diff
git diff --cached //查看已暫存的將要添加到下次提交里的內(nèi)容
提交更新
git commit -m "Story 182: Fix benchmarks for speed"
git commit -am "Story 182: Fix benchmarks for speed" //跳過(guò)使用暫存區(qū)域
從已跟蹤文件清單中移除,從暫存區(qū)域移除
下一次提交時(shí)憾股,該文件就不再納入版本管理了.
$ git rm PROJECTS.md
$ git rm --cached README //從暫存區(qū)域移除)责嚷,但保留在當(dāng)前工作目錄中
移動(dòng)(重命名)文件
$ git mv file_from file_to
查看提交歷史
$ git log
取消暫存的文件
$ git reset HEAD CONTRIBUTING.md
撤消對(duì)文件的修改
$ git checkout -- CONTRIBUTING.md
查看遠(yuǎn)程倉(cāng)庫(kù)
$ git remote -v
添加遠(yuǎn)程倉(cāng)庫(kù)
git remote add pb https://github.com/paulboone/ticgit
從遠(yuǎn)程倉(cāng)庫(kù)中抓取與拉取
git fetch 命令會(huì)將數(shù)據(jù)拉取到你的本地倉(cāng)庫(kù) - 它并不會(huì)自動(dòng)合并或修改你當(dāng)前的工作里初。 當(dāng)準(zhǔn)備好時(shí)你必須手動(dòng)將其合并入你的工作疚膊。
git pull 通常會(huì)從最初克隆的服務(wù)器上抓取數(shù)據(jù)并自動(dòng)嘗試合并到當(dāng)前所在的分支埠巨。
推送到遠(yuǎn)程倉(cāng)庫(kù)
git push [remote-name] [branch-name]
git 分支
分支創(chuàng)建
$ git branch testing //創(chuàng)建分支
$ git checkout -b iss53 //新建一個(gè)分支并同時(shí)切換到那個(gè)分支上
$ git checkout master //切換分支
//合并hotfix到master分支, git commit 來(lái)完成合并提交
$ git checkout master
$ git merge hotfix
//刪除分支
git branch -d iss53
//查看每一個(gè)分支的最后一次提交
$ git branch -v
//新建本地分支现拒,推送到遠(yuǎn)程辣垒,然后設(shè)置跟蹤關(guān)系
$ git branch testing2
$ git push origin testing2:testing2-remote
$ git checkout testing2
$ git branch --set-upstream-to=origin/testing2-remote
//本地新建一個(gè)遠(yuǎn)程同名分支并跟蹤
$ git checkout -t origin/testing-remote