如果想要更加深入學習Git,應該在官網上閱讀.Git-Book.
下面我列一下我經常用到的命令吧.
git add file
開始跟蹤一個文件,並且把file變成暫存狀態
git add --all
跟蹤全部文件
git status
查看哪些文件處於什麼狀態
git commit -s
提交更新,並且跳轉到提交編輯頁面,如果不想跳轉那麼麻煩就用 -m
git pull --rebase
將遠程服務器的代碼更新到本地.同:git fetch + git rebase FETCH_HEAD rebase操作不會生成新的節點,而是將分支融合成一個線性的提交。
git rebase --abort
回到rebase操作之前的狀態,之前的提交的不會丟棄,簡單來說就是撤銷rebase。
git rebase --skip
將引起衝突的commits丟棄掉,(慎用)
git rebase --continue
git pull --rebase 之後,本地如果產生衝突,手動解決衝突之後,用"git add"命令去更新這些內容的索引(index),然後只要執行:git rebase --continue 就可以線性的連接本地分支與遠程分支,無誤之後就回退出,回到主分支上。
注意:一般情況下,修改後檢查沒問題,使用rebase continue來合併衝突。
git commit --amend
對上次提交的內容進行修改,並修改提交說明
git push
將本地版本庫的分支推送到遠程服務器上對應的分支
git reset --hard
永久丟棄對所有文件的所有本地更改(慎用)
git reset --hard commit_id
回退到某個指定的版本(慎用)
git checkout - -
撤銷本地變化(永久丟棄)
git reset --soft
回退到某個版本.只回退commit信息,不會將提交的文件也清除.如果還要提交,直接commit即可
git revert -n commit _id
撤銷之前的某一版本,而且保留該目標版本後面的版本.反做,最後使用commit提交反做.
git branch
列出本地已經存在的分支
git checkout -b branchName
新建一個分支,並切換到這個分支
git branch --no-merged
查看尚未合併的工作分支
git branch -d branchName
刪除該分支,如果這個分支中還包含着尚未合併進來的工作成果,那麼會刪除失敗
git branch -D
強制刪除該分支,不論是否合併過
git reflog show
查看所有分支的操作記錄(即使已經被刪除的commit),有了操作的commit_id之後就可以做許多事情了.比如有的時候刪除了一個分支,然後又想恢復.這個時候查看git log是沒有信息的,所以有了這條命令就不怕誤刪了.
git log --graph
顯示ASCII 圖形表示的分支合併歷史
git stash
快速保存本地更改
git stash save xxx
可以在保存時添加備註信息,這這樣對於多個stash管理和識別將更加方便
git stash list
列出所有以前暫儲過的工作狀態
git stash pop
用戶回到上一個存儲的工作狀態並將其從stash存儲列表中刪除
git checkout -b dev origin/dev
拉取遠程分支到新的分支並切換到這個新分支上面
git cherry-pick commit_id
用於把其他分支的commit,移到當前分支
git clone
從遠程庫中克隆,克隆一個版本庫到新的目錄
git clone -b 遠程分支名 --single-branch --depth=1 遠程分支主倉庫地址
有些庫特別大,而我們只需要用到某個分支的時候,使用此命令
例如:git clone -b p/ali/l/forp/dev –single-branch --depth=1 ssh://aliserver:29418/ali/delivery/AliDelivery dev
git remote show origin
查看有關於origin的一些信息,包括分支是否tracking
git remote prune origin
會與遠程庫進行一次同步,最終清理掉版本庫中的dev分支,但本地工作區中的dev分支並不會刪除