Git常用命令總結及一些問題思考
感謝廖雪峰大神分享的Git課程
歡迎訪問
掌握以下命令,基本上日常夠用
git 常用命令總結
本地倉庫普通操作
建立版本庫
git init
新增檔案到快取區
git add file
新增到倉庫
git commit -m "commint describtion"
撤銷修改或清除快取區
git reset /git reset HEAD file
丟棄或撤銷修改
git checkout -- file
刪除
git rm file
相當於git rm後git add
撤銷刪除操作
git reset
git checkout --file
檢視指定檔案
git cat file
比對工作區與版本庫
git diff
檢視日誌
git log
操作歷史
git reflog
版本回退
git reset --hard commit-id
或 git reset --hard HEAD-id
相當於指定當前HEAD到指定版本
建立並指向分支
git checkout -b
切換分支
git checkout
檢視分支資訊
git branch
詳細資訊 git branch -v
合併指定分支到當前分支
git merge
普通模式合併,保留分支資訊
git merge --no-ff -m ""
此資訊會在遠端顯示
刪除分支
git branch -d
臨時儲存工作區現場
git stash
列出工作區現場
git list
刪除現場並恢復工作區
git stash pop
新增當前工作區全部檔案到快取區
git add .
測試連線
ssh -T git@github.com
遠端庫與本地庫相關
新增遠端版本庫
git remote add origin git@github.com:路徑/版本庫.git
克隆遠端分支庫
git clone git@server:path/repo.git
本地建立遠端庫對應分支
git checkout -b branch origin/branch
從遠端庫拉取最新提交
git pull
關聯並推送本地版本庫到遠端庫
git push -u origin master
本地分支推送到遠端庫
git push
檢視遠端倉庫狀態
git remote show origin
git remote -v
本地分支與遠端分支比對
git diff
強制遠端庫覆蓋本地
git fetch --all
git reset --hard origin/master
git pull
更新遠端資訊
git remote update
追蹤遠端分支
git fetch origin branch-name
建立本地與遠端分支的連線
git branch --set-upstream-to
克隆指定分支
git clone -b
合併衝突
手動解決衝突之後 衝突檔案-->git->Resolve Conflicts
實戰問題及解決方式總結
commit 後無提交說明遇到的問題:Vim: Caught deadly signal SEGV,無法繼續操作git
?只能重啟git視窗?
退出log介面:q鍵退出
刪除部分log?
git reset --hard commit-id: HEAD指向commit-id版本,log只顯示當前HEAD版本 ,回退全部後仍可顯示全部log
刪除全部log?待研究
檢視幫助:git --help ;指定命令幫助 git log -help;
git reset --hard HEAD-id:回退到指定HEAD版本,id可透過git reflog檢視
版本回退:
git reset HEAD^
無--hard時:Unstaged changes after reset: M
有--hard時:
完整命令: git reset --hard HEAD^
HEAD is now at
結果HEAD都指向指定版本
未commit的:
checkout --
已commit的:
reset後checkout也無法撤銷,想撤銷只能reset --hard commit-id或reset --hard HEAD回退到提交刪除之前,無法回退指定檔案
新增遠端倉庫時提示:fatal: remote origin already exists.
進入vi:
vi
.git/config刪除remote “origin”
退出vi編輯器:
ESC後 shift+zz儲存 退出
遠端庫與本地庫操作相關問題及總結
版本庫內檔案,同一路徑下的多個分支共享,分支提交,合併到主線
遠端庫預設名稱根據我們初次連線遠端庫時建立的為準
git pull 提示
there is no tracking information for the current branch
說明本地分支和遠端分支的連線關係沒有建立
git pull提示error: The following untracked working tree files would be overwritten by merge:.....
Please move or remove them before you can merge.
Aborting
git clean -d -fx ""
其中
x -----刪除忽略檔案已經對git來說不識別的檔案
d -----刪除未被新增到git的路徑中的檔案
f -----強制執行
本地與遠端操作流程
進入指定目錄後
若無倉庫時初始化倉庫
關聯遠端倉庫:git remote add origin git@server-name:path/
檢視遠端倉庫資訊:
git remote -v
兩種情況:
未clone過遠端分支時:
git remote show origin
git remote update
git pull
以上三個命令提示:
GitLab: The project you were looking for could not be found.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
checkout -b /
時:
提示:fatal: 'origin/branch' is not a commit and a branch 'branch' cannot be created from it
checkout /
時
提示:error: pathspec 'branch' did not match any file(s) known to git.
error: pathspec 'origin/branch' did not match any file(s) known to git.
此時只能克隆 git clone git@server-name:path/
獲取倉庫再操作
待研究驗證
已克隆過遠端分支時:
已建立本地倉庫與遠端倉庫對應連線,預設為master分支,需要切換到已clone的倉庫程式碼路徑,繼續操作
git remote show origin
提示 tracked git remote update
git pull
無最新提交提示already up-to-dategit fetch
以上命令均可正常操作
後續操作
建立並切換到與遠端庫對應本地分支 git checkout -b branch origin/branch
,
變更已clone過的master分支程式碼為指定分支程式碼
git checkout master
切換到master分支,程式碼重下載
分支切換過程工作區程式碼會跟隨分支變動
git status
檢視倉庫狀態,未修改工作區情況下倉庫狀態不變 working tree clean
追蹤遠端庫git fetch origin branch
拉取最新提交git pull origin branch
指定分支或git pull預設當前對應分支
建立連線git branch --set-upstream-to
問題:遇到過 git pull
及git remote update
不拉取提示new 且未追蹤,待復現
注意:實際開發中需要
切換分支之前需commit工作區到本地分支倉庫,提交之後再切換分支,倉庫程式碼將會有所區別
git stash
臨時儲存工作區後,需記住stash id,再切換分支操作,切回遠分支後透過git
stash pop
或stash apply
恢復原工作區
謹記:
本地修改分支:用於本地修改
遠端同步分支:用於pull及push;本地修改分支合併到該分支,再push
切換分支前提交或臨時儲存本地修改分支修改內容到本地倉庫,以便切回該分支繼續修改
日常git 程式碼操作流程
本地倉庫已與遠端倉庫關聯後:
檢視遠端倉庫資訊 git remote show origin
追蹤最新提交git fetch origin branch
拉取最新提交 git pull
本地倉庫未與遠端關聯時:
關聯本地倉庫到遠端倉庫,
clone遠端分支,
git fetch追蹤,
git pull拉取
git push
提示:fatal: The upstream branch of your current branch does not match
the name of your current branch. To push to the upstream branch
on the remote, use
`git push origin HEAD:`
`To push to the branch of the same name on the remote, use
git push origin`
完整提交流程
git stash
儲存本地工作區
git checkout
切換到遠端分支
git pull
拉取遠端提交
git checkout
切回本地
git merge --no-ff -m ""
遠端分支合併到本地,解決衝突
git checkout
git merge --no-ff -m ""
本地分支合併到遠端
git push origin HEAD:
或git push
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1795/viewspace-2812742/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Git常用命令總結Git
- Git 常用命令總結Git
- 二、Git 問題彙總及處理Git
- Git常用命令總結(超實用)Git
- javascript的物件問題及總結JavaScript物件
- 【Git】git常用命令彙總Git
- 測試開發-Git常用命令總結Git
- linux總結及常用命令Linux
- Git 常用命令總結,將會持續更新Git
- 關於Code Review的一些思考總結View
- MYSQL實戰-MHA搭建及問題總結MySql
- PHP問題總結:PHP最佳化及高效提速問題小結(轉)PHP
- 一些小問題彙總
- 問題總結
- JS/JSP學習的一些問題總結JS
- git config檔案總結及git alias配置Git
- Redis | Redis常用命令及示例總結(API)RedisAPI
- Oracle 錯誤總結及問題解決 ORAOracle
- Python及requests亂碼問題的總結Python
- 二維碼問題上的一些思考
- Git常見問題及解決Git
- 專案中遇到的RediS快取問題及面試問題總結Redis快取面試
- 【總結】日常遇到的一些問題相關知識
- ExpandableListView控制元件使用中一些小問題的總結View控制元件
- 幾次面試後,我的一些思考和總結面試
- 2020年的一些思考和總結
- MySQL高可用方案MHA的一些總結和思考MySql
- 關於DDD和COLA的一些總結和思考
- git總結Git
- Elasticsearch 問題總結Elasticsearch
- Swoole 問題總結
- Kerberos問題總結ROS
- 面試問題總結面試
- 總結logminer使用及各種問題處理
- TDDL思考總結
- git 快速入門及常用命令Git
- git 常用命令及提交流程Git
- git 常見問題及操作方法Git