(一)基本操作
git init //初始化倉庫
git status //查看倉庫狀態
touch README.md //創建READEME.md文件
git add ERADME.md //添加ERADME.md至暫存區
git commit -m "hhh" //如果想要提交信息記錄的更詳細,請不要加 -m
git push //推送本地倉庫的代碼到遠程倉庫
git pull //拉取遠程倉庫的最新代碼
git log --pretty=short //加--pretty=short 只顯示提交信息的第一行
git log ggg //ggg是指指定的文件或目錄,用於查看指定的目錄、文件的日誌
git log -p //查看提交所帶來的改動
git log -p ggg //查看指定文件的改動
git diff //可以查看工作樹,暫存區,最新提交之間的差別
git diff HEAD //查看工作樹與最新提交的差別
(二)切換分支
1.查看遠程分支
E:\work git\workspace6\middleware-multi>git branch -a
* (HEAD detached at origin/xingtai)
master
sanya
remotes/origin/HEAD -> origin/master
remotes/origin/dali_beta
remotes/origin/datong
remotes/origin/datong_beta
remotes/origin/hanzhong
remotes/origin/hushi
remotes/origin/master
remotes/origin/sanya
remotes/origin/xingtai
remotes/origin/xingtai_beta
remotes/origin/xiongan
remotes/origin/yibin
remotes/origin/yulin
可以看到,我們現在在master分支下
2.查看本地分支
E:\work git\workspace6\middleware-multi>git branch
* (HEAD detached at origin/xingtai)
master
sanya
3.切換分支
E:\work git\workspace6\middleware-multi>git checkout origin/datong
Previous HEAD position was 82e2735... 添加調度申請推送到前端(ws方式)
HEAD is now at e514b32... 輔助里程問題修復
已經切換到datong分支了,不信查看:
E:\work git\workspace6\middleware-multi>git branch
* (HEAD detached at origin/datong)
master
sanya
如果切換回master分支,則
E:\work git\workspace6\middleware-multi>git checkout master
Previous HEAD position was e514b32... 輔助里程問題修復
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
現在已經切換master分支了。
(三)合併分支
git checkout master //切換到master分支
git merge --no--ff dev // 加--no--ff 參數可以在歷史記錄中明確地記錄本次分支的合併
git log --graph //以圖表形式查看分支
代碼開發的時候,有時需要把某分支(比如deve分支)的某一次提交合併到另一分支(比如master分支),這就需要用到git cherry-pick命令。
首先,切換到develop分支,敲 git log 命令,查找需要合併的commit記錄,比如commitID:qwqefff;
然後,切換到master分支,使用 git cherry-pick qwqefff 命令,就把該條commit記錄合併到了master分支,這只是在本地合併到了master分支; 注意坑:cherry-pick 中間不要加空格
最後,git push 提交到master遠程,至此,就把develop分支的這條commit所涉及的更改合併到了master分支
(四) 刪除分支
刪除本地分支: git branch -d dev dev爲分支名
刪除遠程分支: git push origin --delete
dev dev爲分支名
(五)打標籤
git tag //查看tag
git tag V1.0.3 -m '20190927部署版本' //在某個提交上打變標籤 -m 後面爲註釋 ;tag 後面爲標籤名稱
git push origin V1.0.2 //本地tag推送到線上
git tag -d V1.0.2 //刪除本地tag
git push origin :refs/tags/V1.0.2 //刪除遠程標籤
(六) 回退
1:只是修改了文件,沒有任何 git 操作 : git checkout -- source/admin/src/config/settings.js
2:修改了文件,並提交到暫存區(即編輯之後,gitadd但沒有gitadd但沒有 git commit -m ....)
git log --oneline # 可以省略
git reset --HEAD 1231231231 # 回退到當前版本 1231231231版本號
git checkout -- aaa.txt # aaa.txt爲文件名
3:修改了文件,並提交到倉庫區(即編輯之後,gitadd和gitadd和 git commit -m ....)
git log --oneline # 可以省略
git reset --HEAD^ 1231231231 # 回退到上一個版本 1231231231版本號
git checkout -- aaa.txt # aaa.txt爲文件名