1、基本命令
1) 配置版本庫
git config--global user.name "<用戶名>"
git config--global user.email <email>
2) 克隆版本庫
git clone <版本庫名>
git clone <版本庫名> <目錄名>
3) 新建版本庫
git init #在當前目錄新建一個版本庫
git init <目錄名> #新建一個目錄,並將其初始化爲一個版本庫
4) 更新版本庫到最新版本
git pull
5) 查看工作區狀態
git status
6) 添加工作區文件到暫存區
git add <文件名> #添加工作區的文件到暫存區
git add <目錄名> #添加工作區的目錄及其子目錄到暫存區
git add . #添加工作區所有修改過的文件到暫存區
7) 提交暫存區文件到版本庫
git commit -m "註釋" #提交暫存區的文件到版本庫
git commit -a #提交工作區自上次commit之後的所有變化到版本庫
git commit –am "註釋":git add和git commit –m "註釋"的結合,確保所有變化都要提交纔可以用,只需部分提交請用git add和git commit –m "註釋"
git commit --amend -m "新註釋":使用新的一次提交替代上一次提交。若代碼沒有新變化,則用於改寫註釋
git commit --amend <文件名1> <文件名2>:重做上一次commit,幷包括指定文件的新變化
注意:git ci 是 git commit的別名
8) 推送到遠程庫
git push的一般形式爲:git push <遠程主機名> <本地分支名> <遠程分支名>。
git push origin master:若遠程分支名省略,如git push origin master,則表示將本地分支推送到與之存在追蹤關係的遠程分支(通常二者同名),若該遠程分支不存在,則會新建(對新建遠程倉庫的第一次推送,需要指定主分支名master,也可以設置-u參數);
git push origin:若當前分支和遠程分支存在追蹤關係,則本地分支和遠程分支都可以省略,如git push origin,表示將當前分支推送到origin主機的對應分支;
git push:若當前分支只有一個遠程分支,那麼主機名都可以省略,如git push,默認推送當前分支。
git push –u origin local:若當前的分支和多個主機存在追蹤關係,則可以使用-u參數指定一個默認主機,這樣後面就可以直接使用git push而不帶任何參數。
9) 查看代碼改動
git diff #查看工作區與暫存區的所有文件差異
git diff <文件名> #查看工作區與暫存區的指定文件差異
git diff --cached #查看暫存區與最後一次本地提交的文件差異
git diff HEAD #查看工作區與最後一次本地提交的文件差異
git diff origin #查看工作區與版本庫原始版本比較
10) 查看提交記錄
git log #查看默認格式的提交記錄
git log -5 #查看最近5條提交記錄
git log -p #查看提交記錄並顯示代碼改動內容
git log -p --author=<作者名> #查看某作者的提交記錄並顯示代碼改動內容
git log --since=<起始時間> --until=<截止時間> #查看某段時間的提交
git log --name-only #只顯示文件名
git log --pretty=oneline #只顯示一行
git log --pretty=format:%h:%s #自定義格式
git log --graph #圖形化查看
git log --stat #查看修改文件統計
11) 替換/撤銷操作
git checkout . #恢復暫存區的所有文件到工作區
git checkout <文件名> #恢復暫存區的指定文件到工作區
git checkout head <文件名> #用head指向的版本庫替換暫存區和工作區的文件
git reset <文件名> #將暫存區中的指定文件回退到工作區
git reset HEAD <文件名> #將暫存區中的指定文件回退到工作區
git reset --hard #重置暫存區與工作區,與上一次commit保持一致
git co -- <文件名或目錄名> #拋棄工作區的修改,還原指定文件或文件夾爲當前版本庫中的狀態。
12) 文件操作
git rm <文件名> #刪除版本庫的文件,本地也不再使用
git rm --cached <文件名> #刪除刪除版本庫的文件,本地還需要再使用,只是該文件不再受版本控制
git mv <文件名1> <文件名2> #移動或重命名文件
13) 查看命令幫助
git help <命令名>
14) 遠程管理
git remote add me ssh://[email protected]/myGit.git #添加遠程主機名和主機地址
git remote set-url origin ssh://[email protected]/myGit.git #設置遠程主機名和主機地址
git remote –v:查看所有遠程主機
2、分支和合並命令
1) 創建分支
git branch dev #方法1:直接從當前分支創建dev分支
git checkout -b dev #方法2:從當前分支創建dev分支,並切換到dev分支
git co –b dev:#方法3:從當前分支創建dev分支,並切換到dev分支
git checkout -b dev master #方法4:從master分支創建dev分支,並切換到dev分支
2) 切換分支
git checkout dev #切換到dev分支
git co dev:切換到dev分支
git checkout - # 切換到上一個分支
3) 分支合併
git merge dev #合併dev分支到當前分支,使當前分支擁有dev分支的改動
git merge dev --squash #合併dev分支到當前分支,但將分支上的提交壓縮,然後手工提交變成一次提交。
git merge origin/master #合併遠程的master分支到當前分支
4) 變基分支
git rebase master #將當前分支的修改重新變基到master分支上
git rebase --on-to <new_base> <current_base> #將當前分支在<current_base>基礎上的修改變基到<new_base>分支上
5) 分支管理
git branch #查看所有的本地分支,帶*號的是當前所在分支
git branch -r #查看所有的遠程分支
git branch -a #查看所有的本地分支和遠程分支,帶*號的是當前所在分支
git branch -d dev #刪除dev分支
git branch -D dev #強制刪除dev分支
git push origin --delete rem #刪除遠程rem分支
git push origin :rem #將遠程分支rem刪除
git branch --merged #查看與當前分支合併過的分支,只要合併過的分支即使刪掉也不用擔心
git branch --no-merged #查看與當前分支沒有合併過的分支