git簡單操作
1、
git init 初始化倉庫
git add 1.txt 新增檔案
git commit -m ”commit” 提交更新,添加註釋
git status 檢視倉庫狀態
git log 檢視日誌
//修改檔案後提交更新
git diff 檢視有哪些修改
git add 新增檔案 //檔案修改後,在提交之前必須 add
git commit -m “commit”
2、
//版本回退
git reset —hard HEAD^ 回退到上一個版本
git reset —hard 18ffb42 回退到指定版本
git reflog 記錄每一次提交記錄,包括回退、commit
git diff HEAD -- 1.txt 檢視工作區和暫存區的不相同的地方,1.txt前面有空格
3、
//撤銷修改
//修改操作還未提交到暫存區
git checkout -- 1.txt
//修改操作提交到了暫存區
git reset HEAD -- 1.txt
//刪除檔案
rm 1.txt 刪除檔案
//確認刪除檔案
git rm 1.txt
git commit
//檔案刪除還未提交到暫存區,撤銷刪除
git checkout -- 1.txt
//檔案刪除提交到了暫存區,撤銷刪除
git reset HEAD -- 1.txt
4、
//遠端倉庫
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013752340242354807e192f02a44359908df8a5643103a000
1、首先在GitHub上建立倉庫
2、將本地Mac的rsa公鑰儲存到GitHub的SSH中
3、新增遠端倉庫
git remote add origin [email protected]:xxxxx/test.git
origin是遠端倉庫名字,可以修改成其他
4、推送原生代碼到遠端倉庫
git push -u origin master
如果第4步報錯,fatal: refusing to merge unrelated histories
執行:git pull origin master --allow-unrelated-histories
將本地修改推送到遠端倉庫
git push origin master
從遠端倉庫獲取更新
git pull origin master
5、
//建立、合併分支
從遠端倉庫下載程式碼到本地後,如果原生代碼為完成,上傳到遠端倉庫,會影響別人程式碼。如果不上傳,有可能會丟失原生代碼。
分支可以解決這個問題,本地建立分支,即使上傳到遠端倉庫,也會建立新的分支,不會影響其他人。而且分支不會影響主線的程式碼。
分支可以從遠端倉庫pull程式碼,合併後提交程式碼也不會有影響。
//建立分支
git checkout -b dev
//檢視分支
git branch 分支名簽名有* 的 是當前分支
//切換到master分支
git checkout master
//合併分支程式碼到master上
git merge dev
//刪除分支
git branch -d dev
//刪除沒有合併的分支
git branch -D dev
//合併分支時,加上--no-ff引數就可以用普通模式合併,合併後的歷史有分支,能看出來曾經做過合併
git merge --no-ff -m 'merge with no-ff' dev
6、
BUG分支
當前正在寫程式碼,臨時讓解決BUG,但是當前程式碼還沒有寫完,可以先把當前分支儲存起來,然後在master上重新建立分支解決BUG,BUG解決後再回到儲存的分支,繼續工作。
//建立分支 新加功能
git checkout -b dev1
vim 1.txt
//臨時來了需求,解決崩潰BUG,先把dev分支的場景儲存
git stash
//建立分支,解決bug
git checkout -b dev2
vim 1.txt
git add .
git commit
git checkout master
git merge —no-ff -m ‘fix bug’
git branch -d dev2
//BUG修復後,回到分支dev,
git checkout dev
//還原dev的工作場景
git stash list //檢視儲存的工作場景
//還原工作場景
一是用git stash apply恢復,但是恢復後,stash內容並不刪除,你需要用git stash drop來刪除;
另一種方式是用git stash pop,恢復的同時把stash內容也刪了:
git stash pop
7、
pull/push遠端分支
git remote -v : 檢視遠端庫資訊
//推送本地分支到遠端倉庫
git push origin dev(分支名)
//從遠端倉庫拉取分支到本地
git checkout -b dev origin/dev
如果報錯:atal: Cannot update paths and switch to branch 'develop' at the same time.
先執行git fetch ,然後再執行git checkout -b dev origin/dev
建立本地分支和遠端分支的關聯,使用git branch --set-upstream branch-name origin/branch-name;
從遠端抓取分支,使用git pull,如果有衝突,要先處理衝突。
8、tag
//給當前分支的最近的commit打tag
git tag V1.0
//對某一次commit打tag
git tag v1.0 f52c633
//指定tag標籤名和註釋
git tag -a v1.0 -m ‘v1.0’ f52c633
//檢視所有tag
git tag
git show v1.0 //檢視tagv1.0的資訊
git push origin <tagname>可以推送一個本地標籤;
git push origin --tags可以推送全部未推送過的本地標籤;
git tag -d <tagname>可以刪除一個本地標籤;
刪除一個遠端標籤,需要先刪除本地標籤,然後刪除遠端標籤
git tag -d <tagname>
git push origin :refs/tags/<tagname>