git 基本命令使用(工作區->版本庫.git ->遠程庫)
參考:B站小人物_zzs
git撤銷 git push origin master
git log //查看所有提交的版本號
git reset --soft <版本號> //選擇這次提交之前的版本號
git log //查看是否成功撤銷
git push origin master --force //強制提交當前版本號,以達到撤銷的目的,個人開發時可以使用,團隊開發不可以
git拉取遠程分支、開發完合併到主分支
https://blog.csdn.net/change_on/article/details/104521751 https://blog.csdn.net/change_on/article/details/104521751
git版本穿梭及查看
git diff +文件名 //查看修改
git log //顯示從最近到最遠的提交日誌,打開無法退出時,輸入q即可
git log --pretty=oneline //簡易顯示從最近到最遠的提交日誌
git reset //歷史版本穿梭
git reset --hard HEAD^ //退回上一個版本
git reset --hard HEAD^^ //退回上兩個版本
git reset --hard HEAD~100 //退回上100個版本
git reset --hard +commit id //退回歷史版本
git reflog //查看歷史命令
git刪除,丟棄和恢復修改
git diff HEAD – readme.txt //查看工作區和版本庫裏面最新版本的區別(readme.txt是例子)
git checkout – //丟棄工作區的修改
git reset HEAD //把暫存區(在版本庫.git中)的修改撤銷
git rm //從版本庫中刪除該文件
通過git rm 刪除的文件,找回:
1.git reset HEAD
2.git checkout –
github遠程倉庫的添加,克隆和刪除
git窗口輸入:
ssh -keygen -t rsa -C “[email protected]”
然後把本機生成的.ssh文件夾下的公鑰文件id_rsa.pub複製到github的SSH連接中,這樣遠程連接就OK了。
本地項目上傳github
git remote add origin +github項目鏈接 //本地項目和遠程連接並命名爲origin
git push -u origin master //第一次將本地倉庫推送到遠程倉庫
git remote -v //查看遠程庫信息
git remote rm origin //origin有衝突時,刪除origin
遠程倉庫下載本地
git clone +地址//從服務器端克隆代碼
git init//初始化倉庫
git remote add origin +地址//給地址起個別名origin
git add .//添加文件到本地倉庫
git commit -m “”//提交日誌
git push origin master//提交到服務器
git remote rm origin//刪除之前origin代表的別名
創建合併分支
git branch //查看分支
git branch //創建分支
git checkout 或 git switch //切換分支
git checkout -b 或 git switch -c //創建+切換分支
git merge //合併某分支到當前分支
git merge --no-ff -m ”“ +合併分支 //合併分支,保留分支信息
git branch -d //刪除分支
解決本地分支合併衝突
分支衝突:主分支和次分支都進行了修改並提交到新版本下,如何合併?
git merge //合併某分支到當前分支下
合併出現問題時,git status 查看合併衝突文件
1.手動解決衝突
2.再次提交git add,git commit
git log --graph --pretty=oneline --abbrev-commit //建議查看合併分支情況
git log --graph //詳細查看分支合併情況
分支管理及bug修復策略
master分支:主分支,穩定分支,僅用來發布新版本,平時不能用來幹活。
dev分支:幹活分支,不穩定,發佈版本時,將dev分支合併到master分支。每個人都有自己的幹活分支,時不時往dev分支合併就可以了。
bug分支:當前在dev分支正在工作時(未提交),在master分支解決臨時bug,需要保護dev分支工作現場,對bug建立新的臨時分支來修復,修復後,合併分支,再將bug分支刪除,最後回到dev分支,回覆之前dev的保護現場。
git stash //存儲當前工作現場,等以後恢復現場繼續工作
git stash list //查看git stash 存儲的修改列表
git stash apply //恢復指定的stash 例:git stash apply stash@{0}
git stash drop //刪除指定的stash 例:git stash drop stash@{0}
git stash pop //回覆stash內容並刪除stash
git cherry–pick //在master分支上修復的bug,合併到當前dev分支
git branch -D //丟棄一個沒有被合併的分支,強制刪除分支
本地與遠程交互(多人協作)
git remote -v //查看遠程庫信息,本地新建的分支如果不推送到遠程,隨其他人是不可見的
git push origin master //向遠程推送主分支
git push origin +branchname //向遠程推送次分支
從遠程庫clone下,默認情況下,只能看到本地master分支
git checkout -b branchname origin/branchname //在本地創建和遠程分支對應的分支 如git checkout -b dev origin/dev
推送失敗,可能你的小夥伴的最新提交和你試圖推送的提交有衝突,解決辦法就是先用git pull 把最新的提交從origin/dev抓下來,然後再本地解決,重新提交,再推送。
git pull origin dev//從遠程抓取分支
git branch --set-upstream branchname origin/branchname //建立本地分支和遠程分支的關聯(先建立在關聯)
多人協作工作模式:
- 首先可以視圖用git push origin branchname 推送自己的修改。
- 推送失敗,先用git pull拉下遠程分支,試圖合併。
- 合併有衝突,解決衝突,本地提交。
- 在使用git push origin branchname.
創建標籤
git log --pretty=oneline --abbrev-commit //查看歷史提交
git tag //建立一個標籤,默認爲HEAD指向版本
git tag //指定歷史提交打標籤
git show //查看標籤信息
git tag -a -m “” //指定標籤信息re
git tag //查看所有標籤
操作標籤(遠程倉庫)
git push origin //推送本地標籤到遠程
git push origin --tags //推送本地所有未推送過的標籤到服務器
git tag -d //刪除本地標籤
git push origin :refs/tags/ //刪除遠程標籤,注意刪除前需要先刪除本地標籤。
特殊文件忽略
忽略某些文件是,需要編寫.gitignore。
.gitignore文件本身需要放到版本庫裏(git add,git commit),並且可以對.gitignore做版本管理
在.gitignore中輸入想要忽略的文件夾和文件名字
git別名及比較工具使用
git config --global color.ui true //git關鍵字高亮
git config --global alias //全局配置別名
git config alias //當前倉庫起別名