git基礎(chǔ)概念和常用命令

IDEA右鍵能直接查看該文件git提交過往記錄

經(jīng)驗(yàn)教訓(xùn)

  • 提交到master之前, 記住要先merge一下master, 然后再讓master merge?。。?/li>

常用命令

  • git clone 項(xiàng)目url(clone某個(gè)項(xiàng)目)
  • 刪除遠(yuǎn)端分支:git push origin 【空格】【冒號(hào)】【你的分支名字】,比如我github上有master和feature分支,我現(xiàn)在想著刪除feature分支,命令如下: git push origin :feature
  • 查看遠(yuǎn)程庫: git remote(-v 顯示詳細(xì)信息)

提交命令

  1. git status(查看項(xiàng)目狀態(tài))
  2. git add(添加文件)
  3. git commit(添加評論,并且將變更提交到本地工作區(qū))
  4. git push origin branch(發(fā)布到遠(yuǎn)端服務(wù)器)

刪除文件

  1. git rm test.txt
  2. git commit -m "remove test.txt"

分支相關(guān)

  1. git branch -r 查看遠(yuǎn)端分支
  2. git branch -a 查看本地分支和遠(yuǎn)程分支
  3. git branch [branch-name] 新建分支,但不切換
  4. git checkout -b [branch] 新建分支,并切換
  5. git checkout [branch-name] 切換到指定分支
  6. git branch --set-upstream-to [remote-branch] [branch] 在現(xiàn)有分支和遠(yuǎn)端分支之間建立關(guān)系
  7. git branch 查看當(dāng)前分支
  8. git branch -d <name> 刪除分支(-D 強(qiáng)行刪除)
  9. git merge <name> 合并某分支到當(dāng)前分支
  10. git checkout -b dev origin/dev(將遠(yuǎn)程分支dev拉取到本地的dev[未建立])

解決沖突

同一份代碼, 提交的結(jié)果不一樣, 如何裁定?

  1. git pull(將遠(yuǎn)端服務(wù)器的代碼拉取下來)
  2. git diff(查看不一致的位置,并且修改)
  3. 再次重復(fù)提交命令。

回到過去

利用HEAD回到過去
  1. git log(查看git日志)
  2. git reset --(hard/soft) commit_id

回到未來

  1. git reflog(查看所有的commit 和 reset 操作 包括已經(jīng)刪除的,git log不能查看已經(jīng)刪除的commit)
  2. git reset --(hard/soft) commit_id

git概念

  • 版本控制管理工具(控制和管理代碼)
  • 集中式版本控制(有一臺(tái)中心服務(wù)器用來控制和管理版本,各個(gè)終端通過這個(gè)服務(wù)器來協(xié)同合作),分布式版本控制(每個(gè)終端都控制和管理自己獨(dú)立的版本,需要協(xié)同合作的時(shí)候相互推送自己的版本,但實(shí)質(zhì)上分布式也通常通過一個(gè)充當(dāng)中心服務(wù)器的終端來協(xié)同合作)
  • 版本庫:使用git init / git clone后, 會(huì)在文件夾中生成一個(gè).git的隱藏文件夾, 這個(gè)文件夾(.git)就是一個(gè)git的版本庫。文件夾里有.git文件夾里的修改刪除將會(huì)被git追蹤。
  • git版本回退
  • 工作區(qū)和暫存區(qū):文件夾里排除.git文件夾 的東西被稱為 工作區(qū),而這個(gè).git文件被稱為 版本庫。
    工作區(qū)與版本庫的關(guān)系

    。
    提交操作的實(shí)質(zhì)
  • 撤銷修改:1. 這個(gè)修改未add到暫存區(qū),
    撤銷某個(gè)文件的修改

    。2.這個(gè)修改已經(jīng)add到暫存區(qū),
    先回退,再撤銷
  • 添加遠(yuǎn)程庫
  • 分支:
    分支示意圖

    。HEAD始終指向你當(dāng)前分支的最新版本。創(chuàng)建一個(gè)新的分支,只不過是在原有分支的情況下多建立一個(gè)指針指向當(dāng)前分支。

  • 解決沖突:
    沖突merge示意圖

    , 先進(jìn)行merge, 如果兩個(gè)版本有沖突的話, 將沖突的文件進(jìn)行修改后add, commit,就自動(dòng)合并了,然后選擇性刪除另一分支。

  • 使用fast-forward的merge結(jié)果

    不使用fast-forward的merge結(jié)果
  • 如果你在dev下開發(fā)一半,突然要切換到主分支,或者XX分支進(jìn)行BUG修復(fù),咋辦呢?思路:1,先保存住工作區(qū)的內(nèi)容 (git stash)。2,切換到某個(gè)分支(git checkout branch)。3, 搞出一個(gè)修復(fù)bug的分支(git checkout -b bugBranch)。4,解決問題,到主分支merge一下(git checkout branch、 git merge bugBranch)。5,繼續(xù)開發(fā)你的dev(git checkout 、git status、 git stash pop)。
  • 當(dāng)你clone一個(gè)項(xiàng)目的時(shí)候,git 會(huì)自動(dòng)把本地的master分支和遠(yuǎn)程的master分支對應(yīng)起來。遠(yuǎn)程倉庫默認(rèn)名字叫origin。
  • 多人協(xié)作小結(jié)
  • rebase TODO
  • 標(biāo)簽實(shí)質(zhì)是一個(gè)commit,只不過名字比較好記。標(biāo)簽和一個(gè)commit一一對應(yīng)。用來表示某個(gè)版本。
    標(biāo)簽小結(jié)1

    ,
    標(biāo)簽小結(jié)2
  • 忽略文件
  • 配置別名,修改用戶目錄下的.gitconfig文件。
  • git merge實(shí)質(zhì)是兩個(gè)分支的最新commit和最原始的commit(兩個(gè)分支分開的地方)進(jìn)行比對,如果如果沒有操作沖突,就自動(dòng)merge,否則需要修改
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1,查看所有遠(yuǎn)程分支:%git branch -r 2, 拉取遠(yuǎn)程分支并創(chuàng)建本地分支git checkout -...
    will666閱讀 2,196評論 0 18
  • git branch 查看本地所有分支 git status 查看當(dāng)前狀態(tài) git commit 提交 git b...
    猿萬閱讀 5,392評論 1 45
  • 三大區(qū)域: 工作區(qū) → 緩存區(qū) → 本地倉庫 一 、 使用 git config 命令進(jìn)行配置: git ...
    Manchangdx閱讀 2,954評論 0 2
  • Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉庫完整的鏡像下來。這樣一來,任何一處協(xié)同...
    __silhouette閱讀 16,203評論 5 147
  • git常用命令 GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章閱讀 8,872評論 1 26

友情鏈接更多精彩內(nèi)容