基本命令
1.查看所有分支
git branch -a (看看是否連接上遠程的git)
2.創建分支
git branch xxx(為你的分支起名字)
3.切換分支
git checkout xxx(切換到你創建的分支,xxx為你要切換分支的名字)
4.添加修改代碼到緩存(注意最后的"."前面有個空格).是提交當前目錄所有修改的
git add .
5.添加提交代碼的備注
git commit -m "xxx"(xxx為本次提交代碼的備注)
6.提交代碼到指定的分支
git push origin xxx (xxx為要提交代碼的分支名稱)
7.如果git push這個步驟出現了錯誤,是因為是git服務器中的你提交的文件不在本地代碼目錄中,可以通過如下命令進行代碼合並,然后在使用第6步
git pull --rebase origin xxx(xxx為要提交代碼的分支名稱)
如果你需要刪除分支在創建
1.刪除遠程你所創建的分支
git push origin --delete xxx(xxx為你想刪除的遠程分支名稱)
2.刪除本地分支
git branch -D xxx(xxx為你想刪除的本地分支名稱)
如果提示你無法刪除本地分支,那是因為你目前還在當前分支,切換一下分支就好了
git log --name-only 每次修改的文件列表
遇到錯誤
新建本地分支后將本地分支推送到遠程庫, 使用git pull 或者 git push 的時候報錯
gitThere is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> merged0.9.6
是因為本地分支和遠程分支沒有建立聯系 (使用git branch -vv 可以查看本地分支和遠程分支的關聯關系) .根據命令行提示只需要執行以下命令即可
git branch --set-upstream-to=origin/遠程分支的名字 本地分支的名字
git merge最簡潔用法
一、開發分支(dev)上的代碼達到上線的標准后,要合並到 master 分支
git checkout dev
git pull
git checkout master
git merge dev
git push -u origin master
二、當master代碼改動了,需要更新開發分支(dev)上的代碼
git checkout master
git pull
git checkout dev
git merge master
git push -u origin dev
git restore指令和git restore --staged 的使用
git restore xx.py 將修改過的文件取消修改(在工作區)
git restore --staged 將暫存區的取出來,但不會更改文件 (git add 文件后為暫存區)
git merge后,想恢復之前版本步驟
一共需要三個步驟:
第一步:git checkout到你想恢復的分支上
1.git checkout 分支名
第二步:git reflog查出要回退到merge之前的版本號
git reflog
第三步:git reset --hard 版本號,就可以回到merge之前的代碼狀態了
git reset --hard a1d566d
成功了
git reset HEAD ,回退git add 后的
git reset HEAD^ ,回退上一版本
https://blog.csdn.net/chenpuzhen/article/details/92006378
git commit之后,想撤銷commit
寫完代碼后,我們一般這樣
git add . //添加所有文件
git commit -m "本功能全部完成"
執行完commit后,想撤回commit,怎么辦?
這樣涼拌:
git reset --soft HEAD^
這樣就成功的撤銷了你的commit
注意,僅僅是撤回commit操作,您寫的代碼仍然保留。
說一下個人理解:
HEAD^的意思是上一個版本,也可以寫成HEAD~1
如果你進行了2次commit,想都撤回,可以使用HEAD~2
至於這幾個參數:
--mixed
意思是:不刪除工作空間改動代碼,撤銷commit,並且撤銷git add . 操作
這個為默認參數,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一樣的。
--soft
不刪除工作空間改動代碼,撤銷commit,不撤銷git add .
--hard
刪除工作空間改動代碼,撤銷commit,撤銷git add .
注意完成這個操作后,就恢復到了上一次的commit狀態。
順便說一下,如果commit注釋寫錯了,只是想改一下注釋,只需要:
git commit --amend
此時會進入默認vim編輯器,修改注釋完畢后保存就好了。
合並指定分支的某個文件
另外如果只想將feature分支的某個文件f.txt合並到master分支上。
1: git checkout master
2: git checkout --patch feature f.txt
第一個命令: 切換到feature分支;
第二個命令:合並feature分支上f文件到master分支上,將feature分支上 f 文件追加補丁到master分支上 f文件。你可以接受或者拒絕補丁內容。即提示輸y或者n
如果只是簡單的將feature分支的文件f.txt copy到master分支上;
git checkout master
git checkout feature f.txt
如果只是簡單的將A_branch分支的文件f.txt copy到B_branch分支上;
git checkout B_branch
cd path/to/f.txt
git checkout A_bracn f.txt
git commit 提交版本的描述信息,編寫前綴規范
git commit -m "feature: 新建.gitignore忽略文件"
git commit 提交版本的描述信息,編寫前綴規范:
描述前綴 | 描述 |
---|---|
feature: | 本次提交的代碼用於開發新功能,新增業務 |
fix: | 本次提交的代碼用於修復bug問題、漏洞 |
docs: | 本次提交的代碼用於修改文檔,注釋等相關 |
style: | 本次提交的代碼用於修改代碼格式,不影響代碼邏輯,常見的代碼規范:PEP8,PEP484 |
refactor: | 本次提交的代碼用於項目/代碼重構,理論上不影響現有功能(針對代碼的重寫,改造原來的模塊/類/函數/方法) |
perf: | 本次提交的代碼用於提升性能,代碼優化 |
test: | 本次提交的代碼用於增加或修改測試用例代碼 |
deps: | 本次提交的代碼用於升級項目依賴(更新依賴模塊) |