Git操作和問題記錄
阿新 • • 發佈:2018-11-14
1.前言
1. 每次push程式碼之前,先從伺服器pull程式碼,保證原生代碼是最新的
git pull origin master --allow-unrelated-histories
2.Git Tag操作
2.1 Tag操作流程
1. $ git tag test -m '資訊' 建立本地Tag
2. $ git push origin test 推送本地Tag testone到遠端倉庫
3. $ git push origin :refs/tags/test 刪除遠端的Tag 標籤
4. $ git tag -d test 刪除本地的Tag標籤
5. $ git tag 展示本地和遠端的Tag列表以你當前的程式碼版本為基準)
2.2 其他命令
命令git push origin --tags可以推送全部未推送過的本地標籤;
2.3 Tag操作問題記錄
remote: GitLab: You are not allowed to change existing tags on this project 沒有許可權操作 $ git push origin testone error: src refspec testone does not match any. 產生原因:需要先在本地建立Tag再進行推送即可
3.正常修改程式碼推送
- git add test.java 進入到對應的目錄,新增修改的檔案
- $ git commit -m ‘info’ 提交add的檔案,並添加註釋資訊
- $ git log -n 1 –stat 檢視最後一次提交了那些檔案
- $ git push origin master 把提交的檔案推送到遠端倉庫
3.1 git pull和push遇到的問題
1.$ git push origin master
! [rejected] master -> master (non-fast-forward)
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
原因:本地的程式碼不是最新的
解決:推送程式碼前需要先從伺服器pull最新的程式碼,
2.$ git pull origin master --allow-unrelated-histories
....
* branch master -> FETCH_HEAD
error: The following untracked working tree files would be overwritten by merge:
binary/....apk
Please move or remove them before you merge.
Aborting
分析:從伺服器pull下的檔案和本地的檔案合併產生了衝突
解決:$ git clean -d -fx 刪除一些沒有 git add的檔案
3. $ git pull origin master --allow-unrelated-histories
Automatic merge failed; fix conflicts and then commit the result
分析:自動合併失敗
解決:1.$ git status 檢視那些檔案有衝突
2.$ git reset --hard origin/master 丟棄本地所有的修改
4.Git 版本回溯(使用TortoiseGit操作)
4.1撤銷修改
1.工作區中右擊->TortoiseGit->show log
2.選中對應的版本節點->右擊Reset "master" to this...
3.Reset Type
soft
mixed(預設)
hard 可以讓出現黃色或者紅色衝突的問題變成綠色(具體原因待續)
4.2Git reset詳解
git reset有三個選項,--hard、--mixed、--soft。
//僅僅只是撤銷已提交的版本庫,不會修改暫存區和工作區
git reset --soft 版本庫ID
//僅僅只是撤銷已提交的版本庫和暫存區,不會修改工作區
git reset --mixed 版本庫ID
//徹底將工作區、暫存區和版本庫記錄恢復到指定的版本庫
git reset --hard 版本庫ID
最後,有興趣的可以關注下方的公眾號,會定期分享一些知識,以及工作中所遇到問題的解決方案。微信掃描二維碼就可以新增關注: