一、git branch 和 git checkout
git branch //檢視當前分支
git branch -r //列出遠端分支
git branch -a //列出所有分支
git branch branchname //建立分支
git checkout branchname //切換分支
git checkout -b branchname //建立並切換到分支
git checkout //後面不跟任何引數,則就是對工作區進行檢查
git checkout --filename //從暫存區中恢復檔案(確保filename與branch名稱不同)
git status //檢視狀態
二、git clone 和 git remote
git clone 《版本庫的**》 《本地目錄名》
git clone支援多種協議,除了http(s)以外,還支援ssh、git、本地檔案協議等,下面是一些例子。
ssh協議還有另一種寫法
$ git clone [user@]example.com:path/to/repo.git/
****************************************=
git remote
git remote -v //檢視遠端主機的**
git remote show 《主機名》 //檢視該主機的詳細資訊
git remote add 《主機名》 《**》 //新增遠端主機
git remote rm 《主機名》 //刪除遠端主機
git remote rename 《原主機名》 《新主機名》 //重新命名遠端主機
三、git pull 和 git push
$ git pull 《遠端主機名》 《遠端分支名》:《本地分支名》
$ git push 《遠端主機名》 《本地分支名》:《遠端分支名》
$ git pull origin master:master 取回origin主機的master分支,與本地的master分支合併
$ git push origin master:master 推送本地的master分支,與origin主機的master分支合併
$ git pull origin master 如果遠端分支是與當前分支合併,則冒號後面的部分可以省略。
$ git push origin master 本地的master分支推送到origin主機的master分支。如果後者不存在,則會被新建
$ git pull origin 本地的當前分支自動與對應的origin主機」追蹤分支」(remote-tracking branch)進行合併。 追蹤分支 是 遠端的同名分支
$git push origin 當前分支與遠端分支之間存在追蹤關係,則本地分支和遠端分支都可以省略
$ git pull 當前分支自動與唯一乙個追蹤分支進行合併
$ git push 當前分支只有乙個追蹤分支,那麼主機名都可以省略
四、git merge 和 git rebase
git merge 用"pull"命令把"origin"分支上的修改拉下來並且和你的修改合併; 結果看起來就像乙個新的"合併的提交"(merge commit):
//使用 rebase 合併
$ git checkout mywork
$ git rebase origin 這些命令會把你的"mywork"分支裡的每個提交(commit)取消掉, 並且把它們臨時 儲存為補丁(patch)(這些補丁放到".git/rebase"目錄中), 然後把"mywork"分支更新 到最新的"origin"分支, 最後把儲存的這些補丁應用到"mywork"分支上
在rebase的過程中,也許會出現衝突(conflict). 在這種情況,
git會停止rebase並會讓你去解決 衝突;在解決完衝突後,
用"git-add"命令去更新這些內容的索引(index), 然後,你無需執行 git-commit,只要執行:
在任何時候,你可以用--abort引數來終止rebase的行動,並且"mywork" 分支會回到rebase開始前的狀態。
$ git rebase --abort
五、git log
git log --stat -n 5 // 簡單的列出了修改過的檔案
git log -p -n 5 // 詳細的列出修改過的檔案,及提交檔案的對比
git log --graph // ascii 字串表示的簡單圖形,形象地展示了每個提交所在的分支及其分化衍合情況
git log --all --decorate --graph
git log --pretty=oneline // 只顯示雜湊值和提交說明
git log --pretty=oneline/short/full/fuller/format:""(格式等)
git log --name-only // 僅在提交資訊後顯示已修改的檔案清單
git log --no-merges // 不顯示merge的log
常用的命令:
git log --name-status -n 5 path/filename --no-merges // 顯示新增、修改、刪除的檔案清單(不包含merge的log)
六、git stash
儲存工作現場
git stash // 儲存工作現場
git pop // 返回工作現場
git stash list //檢視 stash 佇列
git stash pop stash@
// num就是list中要恢復的工作現場編號
// 使用pop命令恢復的工作現場,其對應的stash 在佇列中刪除
git stash clear // 情況 stash 佇列
七、分支合併
分支合併:
保持工作目錄 clean
git checkout master //切換到主幹
git merge subscribeqy //在主幹上合併分支 如果有衝突就解決一下
master push前,在分支上merge master 然後,在master上,merge 分支,在 push
八、其他
$ git fetch 《遠端主機名》 《分支名》
git fetch origin master 取回origin主機的master分支
常用命令 Git 常用命令大全
安裝教程可參照 廖雪峰老師的安裝教程。git config 在git中,使用git config 命令來配置 git 的配置檔案,git配置級別主要有3類 1 倉庫級別 local 本地 git 倉庫級別配置檔案,作用於當前倉庫。優先順序最高 2 使用者級別 global,全域性配置檔案,作用於所有...
git 常用命令
檢視是否存在檔案需要上傳 git status git add git commit m 建立遠端倉庫 git remote add origin 116.255.146.153 ruby cd work daily project.git 更新git fetch 116.255.146.153 r...
git常用命令
詳細 1,git log p 命令來顯示每一次提交與其父節點提交內容之間快照的差異。2,為了檢視載入 staged 而並未提交 not committed 的內容差異,可以使用 git diff stage 命令 在git 1.6之前的版本中,使用 cached 適應情形 在執行git commit...