1. 程式人生 > >快速瞭解 Git 倉庫

快速瞭解 Git 倉庫

一、Git介紹

(1)Git是一個開源(Linus Torvalds 為了幫助管理 Linux 核心開發而開發)的分散式版本控制系統,用於敏捷高效地處理任何或小或大的專案,與常用的版本控制工具 CVS, SVN等不同,它採用了分散式版本庫的方式,不必伺服器端軟體支援。

(2)Git 的工作區、暫存區和版本庫:

  • 工作區:就是你在電腦裡能看到的目錄。

  • 暫存區:英文叫stage, 或index。一般存放在 ".git目錄下" 下的index檔案(.git/index)中,所以我們把暫存區有時也叫作索引(index)。

  • 版本庫:工作區有一個隱藏目錄.git,這個不算工作區,而是Git的版本庫。

二、安裝

Git 目前支援 Linux/Unix、Solaris、Mac和 Windows 平臺上執行。

(1)Windows 上安裝 Git

在 Windows 平臺上安裝 Git 很容易,有個叫做 msysGit 的專案提供了安裝包,可以到 GitHub 的頁面上下載 exe 安裝檔案並執行(安裝包下載地址:https://gitforwindows.org/)

640?wx_fmt=png

安裝成功後,就可以使用命令列的 git 工具(已經自帶了 ssh 客戶端,右擊->"Git Bash")進行Git操作,另外還有一個圖形介面的 Git 專案管理工具

(2)其他安裝 

參見菜鳥教程: http://www.runoob.com/git/git-install-setup.html

三、使用

(1)基本使用

1. git init 可以在任何時候/目錄中建立新的 Git 倉庫,完全是本地化的

640?wx_fmt=png

建立完後會在專案中生成“ .git ”這個子目錄。 這就是你的 Git 倉庫了,所有有關你的此專案的快照資料都存放在這裡,eg:

640?wx_fmt=jpeg

2.git clone 拷貝一個 Git 倉庫到本地進行檢視修改:

640?wx_fmt=png

eg.:

首先,去coding(較流行的一個Git伺服器)隨便找個專案,複製Git倉庫地址:

640?wx_fmt=png

然後,到本地計算機右擊選擇“git clone”:

640?wx_fmt=jpeg

3.git add 將檔案新增到快取

新專案可以使用  “git add .  ” 命令遞迴地添加當前工作目錄中的所有檔案。

4.git status 檢視在你上次提交之後是否有修改

640?wx_fmt=png

5.git diff 檢視執行 git status 的結果的詳細資訊

git diff 比較工作目錄中當前檔案和暫存區域快照之間的差異,也就是修改之後還沒有暫存起來的變化內容。git status 顯示你上次提交更新後的更改或者寫入快取的改動, 而 git diff 則一行一行地顯示這些改動具體是啥:

  • 尚未快取的改動:git diff

  • 檢視已快取的改動: git diff --cached

  • 檢視已快取的與未快取的所有改動:git diff HEAD

  • 顯示摘要而非整個 diff:git diff --stat

6.git commit

 git add 將想要快照的內容寫入快取區, git commit 則將快取區內容新增到倉庫中。

640?wx_fmt=png

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

7.git reset HEAD  取消之前 git add 已快取的內容,但不包含在下一提交快照中的快取。

HEAD關鍵字指的是當前分支最末梢最新的一個提交,也就是版本庫中該分支上的最新版本.

640?wx_fmt=png

8.git revert HEAD: 撤銷最近的一個提交:

git revert會建立一個反向的新提交,可以通過引數-n來告訴Git先不要提交.

9.git rm 從已跟蹤檔案清單中移除某個檔案:

如果只是簡單地從工作目錄中手工刪除檔案,執行 git status 時就會在 Changes not staged for commit 的提示。要從 Git 中移除某個檔案,就必須要從已跟蹤檔案清單中移除,然後提交:

640?wx_fmt=png

10.git mv 命令用於移動或重新命名一個檔案、目錄、軟連線:

640?wx_fmt=png

11.git clean是從工作目錄中移除沒有track的檔案:

640?wx_fmt=png

12.git stash把當前的改動壓入一個棧:

git stash將會把當前目錄和index中的所有改動(但不包括未track的檔案)壓入一個棧,然後留給你一個clean的工作狀態,即處於上一次最新提交處

640?wx_fmt=png

13.git reflog 對reflog進行管理

reflog是git用來記錄引用變化的一種機制,比如記錄分支的變化或者是HEAD引用的變化,git會將變化記錄到HEAD對應的reflog檔案中,其路徑為 .git/logs/HEAD, 分支的reflog檔案都放在 .git/logs/refs 目錄下的子目錄中

640?wx_fmt=png

(2)Git 分支管理

幾乎所有版本控制系統都支援分支。使用分支可以從開發主線上分離開來,在不影響主線的同時繼續工作。

1.建立分支:

640?wx_fmt=png

2.切換分支:

當你切換分支的時候,Git 會用該分支的最後提交的快照替換你的工作目錄的內容, 所以多個分支不需要多個目錄。

640?wx_fmt=png

3.合併分支:

Git 合併,不僅僅是簡單的檔案新增、移除的操作, 也會合並修改。你可以多次合併到統一分支, 也可以選擇在合併之後直接刪除被併入的分支。

640?wx_fmt=png

合併出現衝突需要手動去修改它,然後:

640?wx_fmt=png

4.刪除分支:

640?wx_fmt=png

5.檢視分支的最後一次提交:

640?wx_fmt=png

(3)Git log檢視提交日誌

Git 最為出色的是它的合併跟蹤(merge tracing)能力。使用 git log 命令檢視提交歷史:

640?wx_fmt=png

用 --graph 選項,開啟了拓撲圖選項,可以更清楚明瞭地檢視歷史中什麼時候出現了分支、合併,eg.:

640?wx_fmt=png

如果只想查詢指定使用者的提交日誌可以使用命令:git log --author ,eg.:

640?wx_fmt=png

如果你要指定日期,可以執行幾個選項:--since 和 --before, --until 和 --after,eg.:

640?wx_fmt=png

(4)Git 標籤

1.如果你希望永遠記住重要的階段那個特別的提交快照,你可以使用 git tag 給它打上標籤,eg.:

640?wx_fmt=png

2.檢視標籤:

640?wx_fmt=png

3.如果我們忘了給某個提交打標籤,又將它釋出了,我們可以給它追加標籤,eg.:

640?wx_fmt=png

4.指定標籤資訊:

640?wx_fmt=png

5.PGP簽名標籤:

640?wx_fmt=png

6.刪除標籤:

640?wx_fmt=png

7.檢視某個標籤版本所修改的內容:

640?wx_fmt=png

四、Git倉庫

Git 並不像 SVN 那樣有個中心伺服器。 Git 命令都是在本地執行,如果你想通過 Git 分享你的程式碼或者與其他開發人員合作。 你就需要將資料放到一臺其他開發人員能夠連線的伺服器上。

(1)新增遠端庫

要新增一個新的遠端倉庫,可以指定一個簡單的名字,以便將來引用,命令格式如下:

640?wx_fmt=png

目前流行的Git倉庫有很多,使用最多的有:GitHub、Coding(兼具SVN、Git)。具體的使用如同普通的軟體一樣很簡單,可以直接上手

(2)使用Git倉庫

1.檢視當前的遠端庫

因為不需要每次都用完整的url,所以Git為每一個remote repo的url都建立一個別名,然後用git remote來管理這個list,如果你clone一個project,Git會自動將原來的url新增進來,別名就叫做:origin

640?wx_fmt=png

2.提取遠端倉庫

640?wx_fmt=png

3.推送到遠端倉庫

① 從遠端倉庫下載新分支與資料

 如果有多個人向同一個remote repo push程式碼, Git會首先在你試圖push的分支上執行git log,檢查它的歷史中是否能看到server上的branch現在的tip,如果本地歷史中不能看到server的tip,說明本地的程式碼不是最新的,Git會拒絕你的push,讓你先fetch,merge,之後再push,這樣就保證了所有人的改動都會被考慮進來

640?wx_fmt=png

② git merge 從遠端倉庫提取資料並嘗試合併到當前分支

640?wx_fmt=png

git rebase不會產生合併的提交,它會將本地的所有提交臨時儲存為補丁(patch)放在”.git/rebase”目錄中,然後將當前分支更新到最新的分支尖端、最後把儲存的補丁應用到分支上。

640?wx_fmt=png

4.刪除遠端倉庫

640?wx_fmt=png

5.git pull 預設引數== fetch + merge FETCH_HEAD

640?wx_fmt=png

(3)自己搭建Git 倉庫

你也可以搭建屬於自己的Git伺服器,參見:http://www.runoob.com/git/git-server.html

1、安裝Git

640?wx_fmt=png

建立一個git使用者組和使用者,用來執行git服務:

640?wx_fmt=png

2、建立證書登入

收集所有需要登入的使用者的公鑰,公鑰位於id_rsa.pub檔案中,把我們的公鑰匯入到/home/git/.ssh/authorized_keys檔案裡,一行一個。如果沒有該檔案建立它:

640?wx_fmt=png

3、初始化Git倉庫

選定一個目錄作為Git倉庫:

640?wx_fmt=png

以上命令Git建立一個空倉庫,伺服器上的Git倉庫通常都以.git結尾。然後,把倉庫所屬使用者改為git:

640?wx_fmt=png

4、克隆倉庫

640?wx_fmt=png

五、目前主流的程式碼編譯器都已集成了版本控制系統

以webstorm為例,安裝了git後就可以使用:

分別是:拉取、提交

相關推薦

快速瞭解 Git 倉庫

一、Git介紹(1)Git是一個開源(Linus Torvalds 為了幫助管理 Linux 核

快速瞭解 Git Git倉庫

轉自:https://my.oschina.net/wangnian/blog/2218757 一、Git介紹 (1)Git是一個開源(Linus Torvalds 為了幫助管理 Linux 核心開發而開發)的分散式版本控制系統,用於敏捷高效地處理任何或小或大的專案,與常用的版本控制工具 C

快速瞭解Git

一、Git介紹 (1)Git是一個開源(Linus Torvalds 為了幫助管理 Linux 核心開發而開發)的分散式版本控制系統,用於敏捷高效地處理任何或小或大的專案,與常用的版本控制工具 CVS, SVN等不同,它採用了分散式版本庫的方式,不必伺服器端軟體支援。 (2)Git 的工作區、暫存區和版

Git服務器宕機如何使用本地克隆倉庫快速恢復Git服務器

git 代碼庫 分布式在工作中難免會出現代碼倉庫不能使用如:服務器磁盤跪了,高可用失效,地區級別的網絡癱瘓,等等。之前也聽過Git的一大亮點為去中心話的可靠代碼倉庫,那麽問題來了:代碼庫真的宕機了,連不上了,在短時間內需要團隊開發合並代碼,協作開發,發布版本,筆者在網上搜索一圈沒有人寫過類似文章(也有可能大家

使用命令快速重置更新git倉庫

最近需要使用python做unity自動更新打包操作,因為我們的專案資源都是使用git倉庫做版本控制管理,所以在做自動更新打包操作的時候,首先就是先重置更新本地的倉庫並且同步git上的最新版本資源。 本來我想只要每次打包的時候,使用命令去拉取git最新的版本就

快速初始化git倉庫並上傳專案

git remote add originhttps://git.coding.net/fireness/123456.git——————>git remote add origin URL 將本地倉庫與遠端倉庫關聯

Git倉庫

這樣的 保存 -s git 作者 發布 sha-1 變化 通過 內容還未完整,往後學習過程繼續添加... 一.參考他人文章 http://www.cnblogs.com/Josiah-Lin/p/6847973.html (Git詳細教程---多人協作開發) 工作區暫

02_創建Git倉庫,克隆倉庫git add,git commit,git push,git pull,同行沖突,不同行沖突的結局方案,git mergetool的使用

round rom weight art sdn automatic remote then config 1 創建Git資源庫,殘酷文件夾信息 創建git資源庫的命令: git init –bare 倉庫名稱 (當中-bare表示的意思是空的庫的意思)

git fork代碼並修改胡提交到自己的git倉庫

添加 detail 成功 開發 嘗試 fetch .com mes -m   最近在參加阿裏天池大數據中間件比賽(毫無頭緒,打醬油中).看參賽要求,需要將官網的git工程clone下來,在此基礎上做修改後提交到自己的倉庫中. 由於以前並沒有使用過git,所以差了比較多的資料

創建局域網內遠程git倉庫,並將本地倉庫push推到遠程倉庫

目錄 html fatal targe images rem url already tle 轉自原文 創建局域網內遠程git倉庫,並將本地倉庫push推到遠程倉庫中 1. 先遠程登錄局域網內服務器 2. 在服務器裏 切換到某個文件夾下, 然後新建一個

把本地git倉庫中的項目引入到碼雲上

blog 無需 idt url eight git倉庫 set 連接 .cn 一、安裝git軟件和TortoiseGit客戶端(git需配置環境變量,但安裝時已經配置好,無需考慮) 二、生成公鑰和私鑰(建立與碼雲的連接) 三、在碼雲上新建項目(建議在組

CentOS7——gitlab本地git倉庫搭建 以及web hook配置

ron pda tran 訪問 visit epo 目前 down style 整個搭建用的都是各種默認設置,所以沒有用到高深的的東西,比較簡單,比較傻瓜式,這篇也僅僅是一個入門。 另外本文具有時效性,瀏覽本文請註意發表時間,為防止過時產生誤導,本文盡量把 “如何得知應該這

如何創建一個 Git 倉庫

git倉庫你可以使用一個已存在的目錄作為Git倉庫git initGit 使用 git init 命令來初始化一個 Git 倉庫,Git 的很多命令都需要在 Git 的倉庫中運行,所以 git init 是使用 Git 的第一個命令。在執行完成 git init 命令後,Git 倉庫會生成一個 .git 目錄

Git倉庫創建和文件提交

you glob 一個 oba sgi commit github 分布 3-9 參考質料:廖雪峰的個人網站 Git 什麽是Git:一個分布式版本管理系統; 作用:管理你的歷史文件,文件修改歷史,團隊協作。 Windows下安裝Git: 到鏈接下載安裝包,國內鏡像 雲盤

把本地項目和遠程git倉庫相連通

http idt image kong 名稱 wid 新建 github 復制 1. 打開在你的項目文件夾,輸入下面的命令 git init 輸完上面的命令,文件夾中會出現一個.git文件夾,如下圖所示,其他的的文件也會出現藍色小問號的標誌

怎麽把本地項目和遠程git倉庫相連通

技術分享 遠程 遠程倉庫 倉庫 git reat comm kong osi 1. 打開在你的項目文件夾,輸入下面的命令 git init 輸完上面的命令,文件夾中會出現一個.git文件夾,如下圖所示,其他的的文件也會出現藍色小問號的標誌 2.

服務器上搭建使用SSH賬戶登錄的Git倉庫

ssh 服務器 data install strong bare 客戶端 訪問服務器 sta 1、安裝git yum install -y git 2、創建git倉庫保存的目錄 mkdir /data/git_repo 3、初始化空倉庫 cd /data/git_repog

git倉庫刪除所有提交歷史記錄

-a git tac gin checkout git push 分支 init tail stackoverflow原問題地址:http://stackoverflow.com/questions/13716658/how-to-delete-all-commit-hi

使用ssh連接到遠程git倉庫

pub 遠程 mar ssh-key bitbucket 如何 管理軟件 profile 添加 這篇教了如何創建本地ssh key https://code.aliyun.com/help/ssh/README 這個命令可以在mac終端裏直接復制ssh key cat ~/

Git 添加到Git 倉庫

readme bubuko info img 工作目錄 新建 class 需要 說明 1、打開命令行切換到自己的項目文件夾下 輸入命令git init 初始化git 2、新建README.md文件 輸入This is a great project 保存 3、命令行