Git從原理到入門實用教程

  git是一個版本管理工具。是一個分佈式的版本控制系統,與svn集中式相比,它沒有中央服務器。每臺個人電腦就是一個版本庫,每個開發人員提供自己的修改代碼到共享版本庫(也稱作遠程倉庫)中即可。

Git工作流程圖

  遠程倉庫和本地版本庫的內容是一模一樣的。svn則必須連接到服務器上才能完成代碼的提交和修改。

Git常用命令流程

Git常用命令流程圖

  由Git常用命令流程圖所示,可以看到右下角有一個本地倉庫的閉環。先是創建本地倉庫,本地倉庫創建好了之後,就可以在裏面添加代碼,之後代碼放入工作區,如果想把代碼加入到本地倉庫中去的話,先需要將其放入暫存區,之後通過commit將其提交到本地倉庫中去。若想再修改,還可以把它checkout下來,這樣就形成了一個本地的閉環。

  當需要與別人協作的時候,我們將本地倉庫複製一份到遠程倉庫即可(push)。其他開發人員可以clone一份到自己的本地倉庫即可。

  如果想拿到別人更改後的代碼,將其pull下來就可以。

Git安裝

  • 安裝地址:https://git-scm.com/download

Git安裝

使用本地版本庫

創建

  建立本地倉庫時需要一個空的文件夾,之後在這個文件夾下初始化即可:

git init

  創建完成之後會生成一個隱藏文件夾.git。到此就創建好了本地倉庫。一旦創建了一個本地倉庫,默認就會帶上一個分支,這個分支叫主分支(master)。

添加文件到暫存區

  .git叫做本地版本庫,包含.git的文件目錄叫做工作目錄。如果想要在本地倉庫中添加一個文件的話,這個文件必須要在工作目錄下面。

  通過git status命令用於查看項目的當前狀態。

git status

  如果新建一個文件在此目錄下,我們可以將其添加到暫存區(並非本地倉庫)中。

git add XXX.cpp/readme.md等

  除此之外還可以:

git add . 將當前目錄下修改的所有代碼從工作區添加到暫存區 . 代表當前目錄

添加文件到本地倉庫

  添加到暫存區之後可以通過commit提交到本地倉庫。此處提交需要寫日誌。到此文件就已經添加到本地倉庫中去了。

git commit -m "first commit"

  範式爲:

git commit -m ‘註釋’ 將緩存區內容添加到本地倉庫

Git 爲你的每一個提交都記錄你的名字與電子郵箱地址,所以第一步需要配置用戶名和郵箱地址。

git config --global user.name 'runoob'
git config --global user.email [email protected]

修改文件

  若文件有修改,我們需要先提交到暫存區,之後再提交到本地倉庫。

刪除文件

   要從Git中移除某個文件,就必須要從已跟蹤文件清單中移除,然後提交。可以用以下命令完成此項工作

git rm <file>

   如果刪除之前修改過並且已經放到暫存區域的話,則必須要用強制刪除選項 -f

git rm -f <file>

  刪除版本庫中的文件,但本地保留此文件。

git rm --cached <file>

  當執行 git rm --cached <file>命令時,會直接從暫存區刪除文件,工作區則不做出改變。

  當執行 git checkout .或者 git checkout -- <file>命令時,會用暫存區全部或指定的文件替換工作區的文件。這個操作很危險,會清除工作區中未添加到暫存區的改動。

GitHub上創建倉庫

  在實際開發過程中,我們需要多個人操作同一個代碼,因此需要遠程倉庫。

  Github上面創建倉庫直接界面化操作就可以了。創建好之後我們就有了一個遠程倉庫。

  遠程倉庫建立好之後,我們需要建立一個本地倉庫和遠程倉庫的一個連接。

git remote add origin https://XXX/XXX.git

  其中的origin是一個通用的叫法,代表是哪個遠程倉庫。也可以取名origin1等。

本地代碼推送到遠程倉庫

  git push的一般形式爲 git push <遠程主機名> <本地分支名> <遠程分支名>

git push -u origin master

  將本地的文件推送到遠程服務器即可。第二次提交使用時,如果還是提交到原來的庫,可以直接用git push ,不需要重新git remote add ...,再git push...,如果代碼更新也可以用上面的步驟。

  如果遠程倉庫已經有了的話,直接建立連接,然後push就可以了。

創建ssh密鑰及在Github上配置公鑰

  1. 生成本地密鑰
ssh-keygen -t rsa -C "註冊Github用的郵箱"

  生成完之後通過以下命令獲得一串密鑰

cd ~/.ssh 
cat id_rsa.pub

  然後拿着這一串密鑰到GitHub主頁 SSH and GPG keys 添加New Key

推送修改的文件及衝突解決

  不能說每次都推送全部的文件,我們修改了那個文件就推送哪個文件就可以了。

  在拉取和推送的時候經常會遇到衝突的問題。意思就是當另外一個用戶更新了服務端的代碼,而你本地的代碼不是最新的,再次做修改之後是無法推送上去的。所以我們需要將遠端的拉取下來,然後對比所修改的文件,之後進行手動修改。

  更新最新版本:

git pull origin master

分支管理

  當你執行 git init 的時候,默認情況下 Git 就會爲你創建 master 分支。

  創建分支命令:

git branch (branchname)

  沒有參數時,git branch 會列出你在本地的分支。

  切換分支命令:

git checkout (branchname)

  刪除分支命令:

git branch -d (branchname)

分支合併

  一旦某分支有了獨立內容,你終究會希望將它合併回到你的主分支。 你可以使用以下命令將任何分支合併到當前分支中去:

git merge
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章