日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

【寫在最前】

我們在平時的編程學習中,經常會接觸到“版本控制”這個概念。

目前業界的開發團隊,基本都會從 GIT 、 SVN 兩種主流版本控制系統中選擇一個在團隊內部使用。

兩個軟件設計思路不同,各有利弊。

通過本文知識,讓我們花5分鐘時間學習一下git工具及其常用命令,相信聰明的你,看完一定會有收獲!

【正文開始】

# 定義

Git 是一個開源的“分布式”版本控制系統,跟SVN不同,他并不需要一個集中式的中央代碼服務器的支持。

# 安裝

windows版: https://npm.taobao.org/mirrors/git-for-windows/

linux版: https://www.kernel.org/pub/software/scm/git/git-2.8.1.tar.gz (或 yum -y install git-core)

# 基本概念

想學好git,必須要理解版本庫、暫存區、工作區概念

版本庫:.git隱藏目錄是 Git 的版本庫

暫存區:對應版本庫中名為index的二進制文件(另有stage一說,概念相同)

工作區:就是你在電腦里能正常看到的工作目錄。

三者關系如下圖所示:

 

  1. 圖中可看出 "HEAD" 是指向 master 分支的一個"游標"(圖示的命令中出現 HEAD 的地方可以用 master 來替換)
  2. 當對工作區修改(或新增)的文件執行git add命令時,暫存區的目錄樹被更新;
  3. 當執行提交操作git commit命令時,暫存區的目錄樹寫到master版本庫(即 master 指向的目錄樹就是提交時暫存區的目錄樹)
  4. 當執行git reset HEAD命令時,暫存區的目錄樹被 master 分支指向的目錄樹所替換,但是工作區不受影響。
  5. 當執行git rm --cached命令時,會直接從暫存區刪除文件,工作區不受影響。
  6. 當執行git checkout .或者git checkout --命令時,會用暫存區全部或指定的文件替換工作區的文件 (這個操作有一定危險性,會丟失工作區未add的改動)
  7. 當執行git checkout HEAD .或者git checkout HEAD命令時,會用 HEAD 指向的 master 分支中的全部或者部分文件同時替換暫存區和以及工作區中的文件。 (這個操作有一定危險性,會同時丟失工作區和暫存區的改動)

 

# 常用命令

Git 常用命令有6個,分別是:

git clonegit pushgit addgit commitgit checkoutgit pull

使用過程如下圖所示:

再附上另一張圖,加深你的理解:

# 分支管理

每一種版本控制系統都以某種形式支持分支,一個分支代表一條獨立的開發線。

使用分支意味著你可以從開發主線上分離開來,然后在不影響主線的同時繼續工作。

創建分支命令:

 

git branch (branchname)

 

切換分支命令:

 

git checkout (branchname)

 

刪除分支命令:

 

git branch -d (branchname)

 

合并分支命令:

 

git merge (branchname)

 

注意:合并分支過程中,可能會有代碼沖突,此時必須手動解決后重新通過git add+git commit命令提交

#版本回退(穿梭)

人人都會犯錯誤,版本回退功能給了我們犯錯后改正的機會。

版本回退,需要區分兩種情形:
1)如果還沒有 commit ,則建議用 git checkout 命令進行指定文件錯誤恢復;
2)如果已經commit,則需要先用 git log 命令列出所有 commitId, 然后利用 reset 命令進行恢復;

命令語法為: git reset --hard

 

注1: --hard: commit 和 index都回退(推薦) –-soft:只回退commit,不回退index暫存區 --mixed:混合模式(默認值,但因為工作區沒變化不直觀,所以不推薦)
注2: reset 是全部回退(之后的commit記錄會被直接清除) revert 則只回退指定的 commitId (單次),其余 commit 記錄不變

 

特別注意:

不建議在已經commit的情況下利用 checkout 回退(因為二次修改會有detached HEAD游離態的問題)

 


detached HEAD 游離態產生的原因:
checkout head 命令原理是將head從master分支指向了某個具體 commitId,如果再對文件進行二次修改就會自動產生一個無名分支,此時只會允許你commit到本地,不會再允許你push到遠程。

detached HEAD 游離態的解決:
方案原理:先創建新的臨時分支保存修改操作,再將新分支合并到master
方案只需4步:
git branch temp_branch
git checkout master
git merge temp_branch
git branch -d temp_branch

 

【全文完】

十年技術沉淀,只做原創文章;

及時關注作者,成就大牛之路!

如果您對文章內容有不同意見或獨到見解,歡迎大家在評論區留言討論,作者也會第一時間進行互動回復。

分享到:
標簽:git
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定