基本命令
-
git init
將當前目錄初始化為Git倉庫 -
git add <file>
把名稱為file
的文件添加到Git倉庫 -
git commit -m "msg"
把文件提交到倉庫,msg
為本次提交的說明。
commit
命令一次可以提交多個文件,因此可以多次add
不同的文件。
版本控制
-
git status
可以查看倉庫當前的狀態 -
git diff
可以查看修改的具體內容-
git diff HEAD -- <file>
可以查看工作區和版本庫里面最新版本的區別
-
-
git log
查看提交記錄-
--pretty=oneline
使用此參數簡化輸出信息,每次提交記錄只顯示一行
-
-
git reset --hard HEAD^
回退到上個版本-
git reset --hard <commit id>
可以根據commit id
來回退版本,版本號不需要寫全,Git會根據前幾位自動去找
-
-
git reflog
查看每一次命令 -
git checkout -- <file>
可以丟棄工作區的修改,用版本庫里的版本替換工作區的版本 -
git reset HEAD <file>
可以把暫存區的修改回退到工作區。HEAD
表示最新的版本 -
git rm <file>
用于刪除一個文件
Git中用HEAD
表示當前版本,上一版本就是HEAD^
,上上版本就是HEAD^^
。往上一百個版本可以寫成HEAD~100
遠程倉庫
-
GitHub
-
git remote add origin <git url>
在本地庫目錄下執行,可以將本地倉庫與Github中對應倉庫相關聯。origin
為遠程庫的名字,是Git的默認叫法。 -
git push -u origin master
把本地庫的內容推送到遠程,git push
將 當前分支master
推送到遠程。使用-u
參數會把本地的master
分支與遠程的master
分支關聯起來。 -
git clone <git url>
克隆倉庫到本地。
-
分支
-
git checkout -b dev
創建并切換到dev
分支 - 該命令相當于兩條命令
git branch dev
、git checkout dev
-
git brach
查看當前分支,該命令會列出所有分支,當前分支前面會標一個*
號。 -
git merge dev
合并指定分支dev
到當前分支。 - 當合并沖突時,手動處理沖突文件后再次
add
、commit
- 合并分支時,如果沒有沖突,Git會使用
Fast forward
模式。這種模式下,刪除分支后,會丟掉分支信息。git merge --no-ff dev
將dev
分支合并到當前分支,禁用Fast forward
方式。 -
git branch -d dev
刪除dev
分支。 -
git log --graph
可以看到分支合并圖 -
git log --graph --pretty=oneline --abbrev-commit
簡化分支合并圖信息 -
git stash
把當前工作現場"儲存"起來,后面恢復后繼續工作。 -
git stash list
查看工作現場。 -
git stash apply
恢復stash內容,但是stash的內容并不刪除。 -
git stash apply stash@{0}
恢復指定的stash。 -
git stash drop
刪除stash的內容。 -
git stash pop
恢復并刪除stash內容。 -
git brach -D feature-vulcan
強行刪除feature-vulcan
分支。分支未合并,刪除后會丟失修改。
多人協作
-
git remote
查看遠程庫的信息-
git remote -v
顯示詳細信息
-
-
git push origin master
把master
分支上的所有本地提交推送到遠程庫。 -
git pull
獲取遠程庫最新的提交。 -
git branch --set-upstream dev origin/dev
設置dev
與origin/dev
的鏈接
多人協作,提交到分支到遠程庫有沖突時,先pull最新提交到本地,然后手動處理沖突后再次提交。如果git pull
提示"no tracking information",則說明本地分支和遠程分支未建立連接。使用git branch --set-upstream <branch-name> origin/<branch-name>
建立本地分支與遠程分支的關聯。
標簽
-
git tag <name>
為當前分支打一個新標簽-
git tag
查看所有標簽 -
git tag <name> <commit id>
給對應操作記錄打標簽 -
git tag -a <name> -m <msg>
創建有說明的標簽 -
git tag -s <name>
用私鑰簽名一個標簽。簽名使用PGP簽名,必須首先安裝gpg(GnuPG)。 -
git tag -d <name>
刪除標簽。
-
-
git show <name>
查看標簽信息 -
git push origin <name>
推送標簽到遠程-
git push origin --tags
推送全部尚未推送到遠程的本地標簽。 - 刪除遠程標簽,先從本地刪除
git tag -d <name>
,然后從遠程刪除git push origin :refs/tags/<name>
-
其他
-
git config --global color.ui true
讓Git顯示顏色。 - 配置忽略文件
.gitignore
,可以參考Github中的gitignore。將.gitignore
提交到Git就完成了。在Win中,在資源管理器里新建一個.gitignore
文件,系統會提示你輸入文件名,可以再文本編輯器中編輯,然后保存為.gitignore
即可。 -
git add -f <file>
強制添加到Git -
git check-ignore -v <file>
檢查.ignore
文件。 - 配置別名
-
git config --global alias.st status
用st
代表status
。 -
git config --global alias.unstage 'reset HEAD'
簡化撤銷語句。git unstage <file>
-
git config --global alias.last 'log -1'
配置git last
,讓其顯示最后一次提交信息。 -
--global
是全局參數,針對當前用戶起作用,如果不加就只針對當前倉庫起作用。每個倉庫的配置文件都放在.git/config
文件中。當前用戶的Git配置文件放在用戶主目錄下的隱藏文件.gitconfig
中。
-