前言:開發有段時間了,發現沒有git相關的記錄文檔,補上;
git初始化配置步驟:
1.配置自己的git的名字和郵箱
$ git config --global user.name "your name"
$ git config --global user.email "[email protected]"
- 創建一個想用來存放git文件作爲版本庫的本地文件夾,進入該文件夾
mkdir gitFile
cd gitFile
//pwd 可以查看當前路徑 - 在該文件夾內 git init
把這個目錄變成git可以管理的倉庫
//路徑下多了 .git隱藏文件
//ls -a 可以查看所有文件,包括隱藏文件 - 生成自己的shh key
ssh-keygen -t rsa -C "[email protected]"
//然後一路回車
//多了 ~/.ssh,該路徑下有祕鑰 - 將公共祕鑰拷貝需要的平臺上
//cd ~/.ssh
//拷貝id_rsa.pub中所有內容
git項目開發使用流程
1.開發的時候clone項目到本地
2.切換到自己的開發分支,可以在feature分支新建本次開發分支:
git checkout -b feature/add-new-xxxx
3.開發後將修改提交到自己的開發分支
git add . && git commit -m "對應描述"
git push
4.測試的時候,需要將本次開發的分支merge到develop分支上,最好merge之前提pr。
5.如果本地分支和develop出現衝突,新建一個分支,git checkout -b hotfix/add-new-xxxx,將develop分支最新的內容都拉下來,將feature分支合併到hotfix分支,然後在feature分支解決衝突,解決完衝突後,將hotfix分支合併到develop分支。此時,feature分支上的內容是最新且沒有衝突的,並且feature上的內容都來自master,不會被develop污染。
6.測試完成沒有問題後,將feature分支merge到master分支上。
7.最後,刪除開發中用到的feature/add-new-xxxx、hotfix/add-new-xxxx分支。
常用指令:
git log //提交歷史記錄
git reflog//命令歷史
git reset --hard HEAD^ //回滾到上個版本
git reset --hard 版本號前幾位 //回滾到特定版本
//HEAD 表示當前版本
//HEAD^上一個版本
//HEAD~100前第一個版本
git status //查看所在分支以及修改的文件
工作區 -> 暫存區(stage) -> 分支(如master) -> 遠程倉庫(origin)
git add <file> //將文件修改提交到暫存區
git commit -m '說明' //將修改提交到分支
git checkout --<file> //丟棄文件在工作區的修改
git reset HEAD <file> //可以把暫存區的修改撤銷掉(unstage)
git push ( origin master) //提交到遠程倉庫
//第一次git push -u ,-u參數可以將本地的master分支和遠程的master分支關聯起來,以後可以直接git pull或git push
git remote add origin git@ssh://[email protected] //關聯遠程庫
git clone git@ssh://[email protected] //克隆遠程庫
//Git支持多種協議,包括https,但通過ssh支持的原生git協議速度最快。
git branch //查看分支,當前所在的分支前面有*
git branch -b <brancName> //創建並切換新的分支
//相當於
//git branch <brancName>
//git checkout <brancName>
git branch -d <brancName> //刪除分支
git branch --set-upstream <brancName> origin/<brancName> //建立本地分支和遠程分支的關聯
git merge <brancName> //合併某分支到當前分支
git log --graph //可以看到分支合併圖。
git tag <tagName> //打tag
git tag // 查看所有tag
git show <tagName> //查看標籤信息
git push origin <tagname> //推送一個本地標籤
git push origin --tags //推送全部未推送過的本地標籤
git tag -d <tagname> //刪除一個本地標籤
git push origin :refs/tags/<tagname> //可以刪除一個遠程標籤