經常有人問我git提交代碼問題,在這簡單做下總結。
一、工作中Git提交代碼遠程倉庫基本流程:
基本流程:
- push自己代碼到遠程倉庫前
- 先stash緩存本地代碼(以防別人也有修改有衝突)
- 然後pull拉取遠程代碼
- 拉取完後stash pop拋出本地代碼
- 有衝突時對照提示解決衝突文件,沒有則直接add暫存區
- commit 提交說明
- push到遠程倉庫
具體操作命令介紹如下
1、查看遠程分支
git branch -a
2、切換分支
git checkout xxx
3、備份當前工作區的內容
git stash
4、拉取代碼
git pull
5、拋出備份的本地代碼
git stash pop
6、提交遠程倉庫說明
git commit -m "xxxxx"
7、將工作區的代碼存放到暫存區(有三種命令自行選擇)
git add . (將當前工作區的所有文件存放到暫存區)
git add -u (提交更新所有改變的文件,即提交所有變化的文件)
git add -A (提交已被修改和已被刪除文件,但是不包括新的文件)
8、將本地代碼推到遠程倉庫(根據項目不同後綴有所不同)
git push origin HEAD:refs/for/dev
二、當提交時出現問題的解決方法命令
基本流程:
- 首先查看log日誌
- reset --soft回退到沒有衝突的版本(軟回退)
- 然後stash緩存本代碼
- pull遠程代碼
- stash pop拋出本地備份代碼
- 有衝突則解決衝突,然後add
- commit
- push
具體解決操作命令介紹如下
1、查看日誌
git log
2、回退版本(兩種命令自行選擇)
git reset --hard xxx (本地文件和commit信息都回退了 出現dev|MERGING)
git reset --soft xxx (本地文件還在,當commit信息已經回退)
4、修改上一次提交,將兩次提交合併爲一次提交(即-m '日誌')
git commit --amend
git commit --amend -m "xxxxxx"
5、拋棄合併過程並且嘗試重建合併前的狀態(合併後出現問題時使用)
git merge --abort
6、不加參數即默認比較工作區與暫存區
git diff