git命令(資源)

git、github、gitlab 概念與關係

1. git:版本控制工具php

git是一個開源的分佈式版本控制系統,用以有效、高速的處理從很小到很是大的項目版本管理。html

git學習書籍:https://git-scm.com/book/en/v2 (英文版)、https://git-scm.com/book/zh/v2 (中文版)vue

2. github:一個網站python

提供給用戶空間建立git倉儲,保存用戶的一些數據文檔或者代碼等。linux

3. gitlab:基於git的項目管理軟件git

gitLab 是一個用於倉庫管理系統的開源項目。使用git做爲代碼管理工具,並在此基礎上搭建起來的web服務。github

是一個基於git實現的在線代碼倉儲軟件,你能夠用gitlab本身搭建一個相似於github同樣的系統,通常用於在企業、學校等內部網絡搭建git私服。----github中私服收費。
 web

Git簡介

Git是一個開源的分佈式版本控制系統,能夠有效、高速的處理從很小到很是大的項目版本管理。Git 是 Linus Torvalds爲了幫助管理Linux內核開發而開發的一個開放源碼的版本控制軟件。算法

Git是用於Linux內核開發的版本控制工具。與經常使用的版本控制工具CVS,Subversion等不一樣,它採用了分佈式版本庫的方式,沒必要服務器端軟件支持,(wingeddevil注:這得分是用什麼樣的服務端,使用http協議或者git協議等不太同樣,而且在push和pull的時候和服務器端仍是有交互的。)使源代碼的發佈和交流極其方便。Git的速度很快,這對於諸如Linux kernel這樣的大項目來講天然很重要。Git最爲出色的是它的合併跟蹤(merge tracing)能力。npm

Git是一種免費的開源分佈式版本控制系統,既能夠處理單個的小項目,也能夠處理龐大的企業項目。它極其輕便,專一於速度和處理分佈式項目。它脫胎於Linux內核開發,該公司的GitHub網站對開源項目來講是一個很是流行的軟件庫。

相關連接:https://git-scm.com/

克隆(clone):從遠程倉庫URL加載建立一個與遠程倉庫同樣的本地倉庫 
提交(commit):將暫存文件上傳到本地倉庫(咱們在Finder中對本地倉庫作修改後通常都得先提交一次,再推送) 
檢出(checkout):切換不一樣分支 
添加(add):添加文件到緩存區 
移除(remove):移除文件至緩存區 
暫存(git stash):保存工做現場 
重置(reset):回到最近添加(add)/提交(commit)狀態 
合併(merge):將多個同名文件合併爲一個文件,該文件包含多個同名文件的全部內容,相同內容抵消 
抓取(fetch):從遠程倉庫獲取信息並同步至本地倉庫 
拉取(pull):從遠程倉庫獲取信息並同步至本地倉庫,而且自動執行合併(merge)操做,即 pull=fetch+merge 
推送(push):將本地倉庫同步至遠程倉庫,通常推送(push)前先拉取(pull)一次,確保一致 
分支(branch):建立/修改/刪除分枝 
標籤(tag):給項目增添標籤 
工做流(Git Flow):團隊工做時,每一個人建立屬於本身的分枝(branch),肯定無誤後提交到master分枝 
終端(terminal):能夠輸入git命令行 

 

一、GitHub若是要使用私有倉庫,是須要付費的 GitLab能夠在上面建立私人的克費倉庫

二、GitLab讓開發團隊對他們的代碼倉庫擁有更多的控制,相比於GitHub,它有很多的特點 :

容許克費設置倉庫權限;

容許用戶選擇分享一個project的部分代碼

容許用戶設置project的獲取權限,進一步的提高安全性

能夠設置獲取到團隊總體的改進進度;經過 innersourcing讓不在權限範圍內的人訪問不到該資源

總結 :從代碼私有性方面來看,有時公司並不但願員工獲取到所有的代碼,這個時候GitLab無疑是更好的選擇但對於開源項目而言,GitHub依然是代碼託管的首選 

git相關概念 :

git      是一種版本控制系統,是一個命令,是一種工具

gitlib       是用於實現git功能的開發庫

github     是一個基於git實現的在線代碼託管倉庫,包含一個網站界面,向互聯網開放

gitlab      是一個基於git實現的在線代碼倉庫託管軟件,通常用於在企業內部網絡搭建git私服

gitlab-ce 社區版(免費) 

gitlab-ee是企業版(收費) 

 

gitlab搭建成功

gitlab主配置文件:/etc/gitlab/gitlab.rb      # 能夠自定義一些郵件服務等

日誌目錄:/var/log/gitlab/                          # 對應各服務

服務目錄:/var/opt/gitlab/                         # 對應各服務的主目錄

倉庫目錄:/var/opt/gitlab/git-data            # 記錄項目倉庫等提交信息

重啓服務:gitlab-ctl  stop/start/restart    # 啓動命令 

 

Git工做流程

 

git架構

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

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

  • 暫存區:英文叫stage, 或index。通常存.git/index中,因此咱們把暫存區有時也叫做索引(index)。

  • HEAD:指向 master 分支的一個"遊標"

  • objects:位於 ".git/objects" 目錄下,裏面包含了建立的各類對象及內容。

  • git add:暫存區的目錄樹被更新,同時工做區修改(或新增)的文件內容被寫入到對象庫中的一個新的對象中,而該對象的ID被記錄在暫存區的文件索引中。

  • git commit:當執行提交操做時,暫存區的目錄樹寫到版本庫(對象庫)中,master 分支會作相應的更新。

  • git reset HEAD:取消已緩存的內容,可是工做區不受影響。

  • git rm --cached <file>:會直接從暫存區刪除文件,工做區則不作出改變。

  • git checkout ." 或者 "git checkout -- <file>":會用暫存區所有或指定的文件替換工做區的文件。這個操做很危險,會清除工做區中未添加到暫存區的改動。

  • git checkout HEAD ." 或者 "git checkout HEAD <file>" :會用 HEAD 指向的 master 分支中的所有或者部分文件替換暫存區和以及工做區中的文件。這個命令也是極具危險性的,由於不但會清除工做區中未提交的改動,也會清除暫存區中未提交的改動。

 

1. git init

在GitHub項目初始化以前 ,數據已經存在於本地倉庫中 ,可經過切換到該倉庫位置後經過 git init 進行初始化 ,只有進行了此操做 ,後邊的操做纔有意義 。初始化後會生成一個 .git 文件夾 ,不要輕易動 。

2. git status

顧名思義 ,此語法能夠查看當前狀態 ,像我本身學習的時候就喜歡動不動 git status 下 ,查看當前狀態 ,也能避免沒必要要的錯誤 。

3. git add

用於將指定文件提交到「緩衝區」 ,git add . 即將修改過的全部文件提交到「緩衝區」

4.git commit

git add 或一些命令後 ,若是執行 git status 會提示你有文件能夠 commit ,提交便可 ,例如 git commit -m"" 。

5.git push

commit 以後 ,最終提交到遠程倉庫須要經過 push 指令實現 。git push -u origin master 。

紙上得來終覺淺 ,絕知此事要躬行 。下邊就以 leetcode 代碼爲例實戰下吧 。

git 簡單實戰 。

1.首先若是沒有 GitHub 帳號 ,固然是要去註冊一個啦 ,用戶名和郵箱名都記住 。

2.本地配置用戶名與郵箱(設置好的跳過此環節)。

git config --global user.name "你的用戶名"

git config --global user.email "你的郵箱"

如圖所示 :

3.生成 ssh key

運行 ssh-keygen -t rsa -C "你的郵箱"

會提示你輸入 ,能夠直接回車 ,理論上會有 3 次回車輸入 。(這裏寫此文時以配置好 ,提示是否覆蓋)

4.到上述路徑下打開該文件並複製其中內容(ssh key)。

5.打開 GitHub 並進入 settings ,點擊 SSH  and GPG keys ,將上面複製的內容粘貼到 key 中便可 。以後點擊 Add SSH key便可 。

6.能夠在 git 窗口執行 ssh -T git@github.com ,查看是否配置成功 。

建li遠程倉庫並關聯本地 。

這裏就以 leetcode 的代碼倉庫爲例 。

1.首先創建遠程倉庫 (由於小詹已經事先用了LeetCode名字 ,這裏你們能夠忽略下圖的報錯)

2.接下來就以當前狀態 ,上傳第 18 題和刪除第 18 題爲例 ,介紹如何上傳 、刪除遠程倉庫內容 。

首先 ,咱們經過 cd 切換到本地倉庫的文件位置 。並經過git init將該位置格式爲倉庫 。這裏小詹以前已經git init過了 ,因此切換到該路徑後面會有個master 。

以後 ,在本地倉庫更新倉庫內容 ,小詹的遠程倉庫如今沒有 leetcode 18題 ,本地倉庫存在 ,因此接下來將該新增的第18題文件夾上傳到遠程倉庫 。

咱們平時要學會是否是 git status 下 ,看看當前狀態 ,以後利用 git add 指令將要上傳的文件 add 到「緩衝區」 (能夠 git status查看下狀態 ,熟悉這個過程),以後利用 git commit 提交 ,最後 push 便可完成目標文件夾的上傳 。整個過程以下 :

執行後從新進入遠程倉庫會發現多了一個文件夾 ,就是剛上傳的那個 。

接下來 ,若是咱們不當心上傳錯了文件夾 ,如何刪除呢 ?

以剛上傳的 018.4sum 文件夾爲例 ,能夠經過 3 行簡單的代碼刪除 ,具體以下 :

接下來 ,若是咱們不當心上傳錯了文件夾 ,如何刪除呢 ?

以剛上傳的 018.4sum 文件夾爲例 ,能夠經過 3 行簡單的代碼刪除 ,具體以下 :

執行完以後 ,遠程倉庫的對應文件即被刪除了 。

 

git config

·        /etc/gitconfig 文件:系統中對全部用戶都廣泛適用的配置。若使用 git config 時用 --system 選項,讀寫的就是這個文件。

·        ~/.gitconfig 文件:用戶目錄下的配置文件只適用於該用戶。若使用 git config 時用 --global 選項,讀寫的就是這個文件。

·        當前項目的 Git 目錄中的配置文件(也就是工做目錄中的 .git/config 文件):這裏的配置僅僅針對當前項目有效。

$ git config --global user.name "runoob"  
$ git config --global user.email test@runoob.com  
$ git config --list  
$ git config user.name  

git clone

git clone http://github.com/CosmosHua/locate new  
git clone http://github.com/CosmosHua/locate.git new  
git clone git://github.com/CosmosHua/locate new  
git clone git://github.com/CosmosHua/locate.git new  

git status -s

#-s 參數,以得到簡短的結果輸出  
"AM" 狀態的意思是,這個文件在咱們將它添加到緩存(git add)以後又有改動  
「??」未add  
「A」已經add  

git diff

查看比 git status 的結果的詳細信息。

git diff 命令顯示已寫入緩存與已修改但還沒有寫入緩存的改動的區別。git diff 有兩個主要的應用場景。

  • 還沒有緩存的改動   :  git diff

  • 查看已緩存的改動    :    git diff --cached

  • 查看已緩存的與未緩存的全部改動    :   git diff HEAD

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

 

git reset HEAD 

取消已緩存的內容。

  1. $ git reset HEAD -- hello.php         取消其中一個緩存的文件  

git rm

若是刪除以前修改過而且已經放到暫存區域的話,則必需要用強制刪除選項 -f

git rm -f <file>

若是把文件從暫存區域移除,但仍然但願保留在當前工做目錄中。

git rm --cached <file>

git如何撤銷上一次commit操做

git reset --soft|--mixed|--hard <commit_id>  
git push develop develop --force  (本地分支和遠程分支都是 develop)  
<span style="color:#ff0000;">這裏的<commit_id>就是每次commit的</span><strong><span style="color:#ff0000;">SHA-1</span></strong>,能夠在log裏查看到  
--mixed    會保留源碼,只是將git commit和index 信息回退到了某個版本.  
--soft   保留源碼,只回退到commit信息到某個版本.不涉及index的回退,若是還須要提交,直接commit便可.  
--hard    源碼也會回退到某個版本,commit和index 都會回退到某個版本.(注意,這種方式是改變本地代碼倉庫源碼)  

git branch

建立分支命令:  
git branch (branchname)  
切換分支命令:  
git checkout (branchname)  
當你切換分支的時候,Git 會用該分支的最後提交的快照替換你的工做目錄的內容。  
git checkout -b (branchname) 命令來建立新分支並當即切換到該分支下  
git merge secondBranch #merge secondBrach to master,能夠不用切回master branch  
你能夠屢次合併到統一分支, 也能夠選擇在合併以後直接刪除被併入的分支。  
刪除分支命令:  
git branch -d (branchname)  

 

Git log

查看歷史提交記錄  
Git log  
查看簡潔版  
Git log –-oneline  

git tag

若是你達到一個重要的階段,並但願永遠記住那個特別的提交快照,你可使用 git tag 給它打上標籤。

-a 選項意爲"建立一個帶註解的標籤"。不用 -a 選項不會記錄這標籤是啥時候打的,誰打的,也不會讓你添加個標籤的註解。

$ git tag -a v1.0 –m 「first tag」  
若是咱們忘了給某個提交打標籤,又將它發佈了,咱們能夠給它追加標籤  
$ git tag -a v0.9 85fc7e7  
$ git log --oneline 能夠看到  

git remote 

添加遠程庫

要添加一個新的遠程倉庫,能夠指定一個簡單的名字,以便未來引用,命令格式以下:

git remote add [shortname] [url]  
git remote add remoteServer https://github.com/Courage-Freadom/hello-world/  
git push -u remoteServer master  

 

查看遠程倉庫  
$ git remote -v  
從遠程倉庫下載新分支,該命令執行完後須要執行git merge  
git fetch  
從遠端倉庫提取數據並嘗試合併到當前分支:  
git merge  

 

1. 刪除分支

1.1 本地分支

git branch -d iss53

 

1.2 遠程分支

git push origin :iss53

 

2. 已經暫存起來的文件和上次提交時的快照之間的差別

git diff —staged

 

3. 比較2個不一樣版本之間的差別

git diff [branch]:[filename] [other-branch]:filename

 

4. 打tag

 三、git push --tags一、git tag -a v1.1.0 -m "fix bug」 [branch]
二、git tag v1.1.0 master # 也能夠簡單點寫

 

4.1 獲取倉庫中的全部tags

git fetch --tags

 

4.2 刪除本地tag

git tag -d v1.0.0

4.3 刪除倉庫中的tag

git push origin :refs/tags/v1.0.0

 

5. 顯示當前版本

git show master
git show develop
git show origin iss53
git show v1.0.35

 

6. 撤銷提交

git revert c2785abf22c1041f6bd7f538538d571372a9127agit push origin master

 

7. 顯示遠程倉庫的詳細信息

git remote show origin

 

8. clone 出分支

git clone git@github.com:vearne/carspider.git

 

clone 出非master的其它分支

git checkout -b develop origin/develop


在本地建立一個 develop 分支,並把它和 origin上的develop 分支關聯起來

 

9. 放棄全部本地變動

git checkout -f

 

10. 設置upstream

git branch --set-upstream my_branch origin/my_branch

 

11.查看倉庫當前的狀態

git status

12.查看歷史提交記錄

git log

或者加上參數查看就比較清晰了

$ git log --pretty=oneline

13.回退版本

$ git reset --hard HEAD^

1四、查看操做的歷史命令記錄

$ git reflog

15.丟棄工做區的修改

$ git checkout -- <file>

說明:適用於工做區修改沒有add的文件

16.丟棄暫存區的文件

$ git reset HEAD <file>

說明:適用於暫存區已經add的文件,注意執行完此命令,他會將暫存區的修改放回到工做區中,若是要想工做區的修改也丟棄,就執行第15條命令便可

 

Git入門

實際項目開發中,咱們常常會用一些版本控制器來託管本身的代碼,今天就來總結下Git的相關用法,廢話很少說,直接開寫。

目的:經過Git管理github託管項目代碼

1、下載安裝Git

一、下載Git  官方地址爲:

https://git-scm.com/download/win

二、下載完以後,雙擊安裝

三、選擇安裝目錄

四、選擇組件

五、開始菜單目錄名設置

 六、選擇使用命令行環境

七、如下三步默認,直接點擊下一步

 八、安裝完成

九、檢驗是否安裝成功

回到電腦桌面,鼠標右擊若是看到有兩個git單詞則安裝成功

2、Git基本工做流程

一、Git工做區域

二、向倉庫中添加文件流程

3、Git初始化及倉庫建立和操做

一、Git安裝以後須要進行一些基本信息設置

a、設置用戶名:git  config -- global  user.name  '你再github上註冊的用戶名';

b、設置用戶郵箱:git  config -- global  user.email  '註冊時候的郵箱';

注意:該配置會在github主頁上顯示誰提交了該文件

c、配置ok以後,咱們用以下命令來看看是否配置成功

git config --list

注意:git  config --global 參數,有了這個參數表示你這臺機器上全部的git倉庫都會使用這個配置,固然你也能夠對某個倉庫指定不一樣的用戶名和郵箱

二、初始化一個新的git倉庫

a、建立文件夾

方法一:能夠鼠標右擊-》點擊新建文件夾test1

方法二:使用git新建:$  mkdir test1

b、在文件內初始化git(建立git倉庫)

方法一:直接輸入 $ cd test1

方法一:點擊test1文件下進去以後-》鼠標右擊選擇Git Bash Here->輸入$ git int

三、向倉庫中添加文件  

方法一:用打開編輯器新建index.html文件

方法二:使用git命令。$  touch '文件名',而後把文件經過$ git add '文件名'添加到暫存區,最後提交操做

四、修改倉庫文件

方法一:用編輯器打開index.html進行修改

方法二:使用git命令。$  vi  '文件名',而後在中間寫內容,最後提交操做

五、刪除倉庫文件

方法一:在編輯器中直接把要刪除的文件刪除掉

方法二:使用git刪除:$ git rm '文件名',而後提交操做

4、Git管理遠程倉庫

一、使用遠程倉庫的目的:備份、實現代碼共享集中化管理

Git遠程倉庫實際上就是保持在服務器上的git倉庫文件

5、Git克隆操做

目的:將遠程倉庫(github上對應的項目)複製到本地

一、代碼:git clone 倉庫地址

倉庫地址由來以下:

二、克隆項目

三、將本地倉庫同步到git遠程倉庫中:git push

期間出現錯誤的狀況有: 

a、出現提交錯誤

解決:這是經過Git GUI進行提交時發生的錯誤,由 .git 文件夾中的文件被設爲「只讀」所致,將 .git 文件夾下的全部文件、文件夾及其子文件的只讀屬性去掉便可。

 

b、若是出現沒法同步或沒有權限,解決方法以下:

用戶名和密碼必定要和github上的一致。

 

 Git 提交規範

1、具體規則

先來看看公式:

<type>(<scope>): <subject> 

type

  • 用於說明 commit 的類別,只容許使用下面7個標識。

  • feat  :   新功能(feature)

  • fix    :   修補

  • bugdocs   :   文檔(documentation)

  • style   :     格式(不影響代碼運行的變更)

  • refactor    :   重構(即不是新增功能,也不是修改bug的代碼變更)

  • test   :   增長測試

  • chore    :    構建過程或輔助工具的變更

scope

用於說明 commit 影響的範圍,好比數據層、控制層、視圖層等等,視項目不一樣而不一樣。

subject

是 commit 目的的簡短描述,不超過50個字符。

  • 以動詞開頭,使用第一人稱如今時,好比change,而不是changed或changes

  • 第一個字母小寫

  • 結尾不加句號(.)

異常處理

咱們先來看看這個異常提醒:

INVALID COMMIT MSG: does not match "<type>(<scope>): <subject>" ! 

jartto:fix bug 

這裏之因此報出這個警告,是由於個人提交出現了兩個問題:

  • 其一,使用了規範外的關鍵字;

  • 其二,很細節的問題,jartto:後少了空格;

這時候我纔回憶起來,當時提交一直失敗,情急之下直接強制提交,因此之後的提交都會抱出這個異常。大體意思就是:

你的以前的 Commit 不合格~你的以前的 Commit 不合格~你的以前的 Commit 不合格

這時候就很煩了,咱們只能去將以前的錯誤修正,那麼如何操做呢?

 

3、如何修改以前的 commit 信息?

其實並不複雜,咱們只須要這樣作:

一、將當前分支無關的工做狀態進行暫存

git stash 

二、將 HEAD 移動到須要修改的 commit 上

git rebase 9633cf0919^ --interactive

三、找到須要修改的 commit ,將首行的 pick 改爲 edit

四、開始着手解決你的 bug

五、 git add 將改動文件添加到暫存

六、 git commit –amend 追加改動到提交

七、git rebase –continue 移動 HEAD 回最新的 commit

八、恢復以前的工做狀態

git stash pop

 

4、項目中使用

這時候問題又來了,爲何我提交的時候會有警告,這個又是如何作到的呢?

這時候,咱們須要一款 Node 插件 validate-commit-msg 來檢查項目中 Commit message 是否規範。

1.首先,安裝插件:

npm install --save-dev validate-commit-msg 

2.使用方式一,創建 .vcmrc 文件:

  "types": ["feat", "fix", "docs", "style", "refactor", "perf", "test", "build", "ci", "chore", "revert"], 

  "scope": { 

    "required": false, 

    "allowed": ["*"], 

    "validate": false, 

    "multiple": false 

  }, 

  "warnOnFail": false, 

  "maxSubjectLength": 100, 

  "subjectPattern": ".+", 

  "subjectPatternErrorMsg": "subject does not match subject pattern!", 

  "helpMessage": "", 

  "autoFix": false 

3.使用方式二:寫入 package.json

  "config": { 

    "validate-commit-msg": { 

      /* your config here */ 

    } 

  } 

}

4.但是咱們若是想自動使用 ghooks 鉤子函數呢?

  … 

  "config": { 

    "ghooks": { 

      "pre-commit": "gulp lint", 

      "commit-msg": "validate-commit-msg", 

      "pre-push": "make test", 

      "post-merge": "npm install", 

      "post-rewrite": "npm install", 

      … 

    } 

  } 

  … 

}

在 ghooks 中咱們能夠作不少事情,固然不僅是 validate-commit-msg 哦。

更多細節請參考:validate-commit-msg

 

5、Commit 規範的做用

  • 提供更多的信息,方便排查與回退;

  • 過濾關鍵字,迅速定位;

  • 方便生成文檔;

6、生成 Change log

正如上文提到的生成文檔,若是咱們的提交都按照規範的話,那就很簡單了。生成的文檔包括如下三個部分:

  • New features

  • Bug fixes

  • Breaking changes.

每一個部分都會羅列相關的 commit ,而且有指向這些 commit 的連接。固然,生成的文檔容許手動修改,因此發佈前,你還能夠添加其餘內容。

這裏須要使用工具 Conventional Changelog 生成 Change log :

npm install -g conventional-changelog 

cd jartto-domo 

conventional-changelog -p angular -i CHANGELOG.md -w

爲了方便使用,能夠將其寫入 package.json 的 scripts 字段。

  "scripts": { 

    "changelog": "conventional-changelog -p angular -i CHANGELOG.md -w -r 0" 

  } 

}

這樣,使用起來就很簡單了:

 npm run changelog

到這裏,咱們全部的問題都搞明白了, Cheers~

7、總結

看完文章,你還會如此放蕩不羈嗎?你還會爲所欲爲的編寫 Commit 嗎?你還會如此 git commit -m "hello world"提交嗎?

 

Git版本控制入門

第一節   版本控制系統介紹

版本控制系統(VCS,version controlSystem)

 

能夠實現的功能

A.  記錄文件的全部歷史變化

B.  隨時恢復到任何一個歷史狀態

C.  多人協做開發或修改

D. 錯誤恢復

E.多功能並行開發

 

版本控制分類

A.  本地版本控制系統

B.  集中化版本控制系統

C.  分佈式版本控制系統

 

版本控制系統的基本概念

1.      repository             存放全部文件及其歷史信息(也叫倉庫)

2.      checkout               取出或切換到指定版本的文件

3.      version                  記錄標識一個版本(編號或其餘代碼)

4.      tag                        記錄標識一個主要版本(1.0  2.0 3.0)

 

本地版本控制系統(LVCS)

 

僅運行在本地,能夠不使用網絡

表明版本類型èRCS(Revision ControlSystem)

優勢:簡單、不少系統中都內置、適合管理文本文件(如配置文件、文章、信件、簡單文檔等)

缺點:只合適管理少許文件、不支持基於項目管理、支持文件類型單1、不支持網絡、沒法實現多人協做。

 

集中式版本控制系統(CVCS)

 

表明版本èCVS(concurrent versionSystem)  subversion

優勢  :適合多人團隊協做開發、代碼集中管理

缺點  :  單點故障、必須聯網工做、沒法實現單機本地工做

 

分佈式版本控制系統(DVCS)

 

表明版本ègit  mercurial(水銀)

優勢:適合多人團隊協做開發、代碼集中管理、能夠離線工做、每一個計算機都是一個完整的倉庫

 

第二節  Git版本控制系統

開源的分佈式版本控制系統,最初是取代bitkeeper,linus Torvalds開發,用於Linux內核代碼管理系統

優勢:速度快、設計簡單(配置簡單)、對非線性開發模式支持好(多分支開發)、徹底分佈式有能力高效管理相似Linux內核同樣的超大規模項目

 

Git原理—快照

使用快照(沒有變化的版本庫連接到原始版本,變化的保存下來),而不是保存。

每一種版本控制系統都用一種辦法追蹤不一樣階段文件的變化。

其餘版本控制系統的工做原理,使用補丁(保存)

 

Git版本控制工做原理

Git原理—文件鑑別和操做

1.      幾乎全部操做都是在本地(分佈式是指每一個電腦都有一個完整的版本庫)

2.      經過校驗和算法識別文件變化

a)       經過sha-1算法對文件內容或目錄結構進行哈希,得出的假煙值做爲變化的指紋

3.      多數操做均爲添加數據(刪除的文件能夠經過回溯的原始版本找回)

 

Git原理—文件狀態及工做區域

Git repository                   最終肯定的文件保存到倉庫,成爲新的版本,對他人可見

Staging area(index)               暫存區域,暫存已經修改的文件

Working Directory               編輯、修改文件

 

第三節   Git安裝

官方網站git-scm.com , 網站提供了多種系統多種方式的下載

yum系列

centos 環境下使用命令#yum install –y git

apt-get系列

Ubuntu環境下使用命令#apt-get install git

Windows系列

Windows環境下載exe安裝包,使用默認安裝設置。生成git bash,經過git bash能夠直接使用相似Linux的命令,默認的使用路徑是家目錄。

建立一個文件夾,打開文件夾,右擊,creat gitrepository here,該文件夾便是本地的倉庫。從git bash 中切換到該目錄能夠看到其識別爲倉庫的主分支。

 

Mac OS X 系列

在mac os x 中,安裝xcode的時候會默認安裝git,因此先在terminal中確認是否安裝。進入AppStore,搜索Xcode,點擊details,點擊install,大小一般爲1.7GB左右,須要等待一段時間。

打開Xcode, 點擊菜單項,進入download,有command linetools一項,傳統使用的gcc、git等包含在該項中,默認是沒有安裝,需手動安裝。

 

第四節   Git初始化及倉庫建立

Git基礎設置

Git安裝完成以後,須要進行一些基本信息設置

1.     設置用戶名

# git config –global user.name 「YourName」

2.     設置用戶郵箱

# git config –global user.email 「yourmail@Mail.com」

3.     查看設置

# git config --list

用戶名和郵箱是提交代碼是的標識,能夠設置全局帳戶,也能夠針對某個倉庫進行設置

 

Git幫助命令

一、獲取全局幫助

# git help

二、獲取特定命令的幫助

# git help 特定命令名

 

初始化一個新的Git倉庫

一、  建立一個文件夾,能夠直接使用已有的文件夾

# mkdir book

二、  在文件夾內初始化git,建立git倉庫

# cd book

# git init   在book文件夾中建立.git文件夾,全部的倉庫數據文件都是保存在.git文件夾中,所說的git倉庫即爲.git文件夾。

三、   

向Git倉庫中添加文件

一、  建立相應的文件,如readme、book.cpp

# touch readme book.cpp

二、  查看當前工做目錄下的全部文件的狀態

# git status

三、  將相應的文件添加到暫存區域中,能夠同時添加多個文件

# git add readme

四、  添加到倉庫中

# git commit -m 「initrepo」   -m參數後字符串用於註釋當前此次提交作了哪些工做

五、  查看git提交歷史

# git log

 

Commit後的字符串是SHA碼,其後爲做者,提交日期,註釋信息

 

git修改全局默認的倉庫地址

用git寫項目的時候,經過命令git config --list看到git bash中有默認的遠程倉庫地址。
默認第一個項目給出了https://gitee.com/XXX/Music.git,
若是想再第二個項目中引用git地址,那麼運行命令

HTML運行復制全屏

一、git remote 查看全部遠程倉庫, git remote xxx 查看指定遠程倉庫地址

 

二、git remote rm origin   刪除全局默認倉庫地址

 

三、git remote add origin XXX    添加一個項目地址

這樣就能夠初始化全局的git我的信息

還有修改我的信息的時候
若是你沒有初始化過。那麼直接:
$ git config --global user.name "輸入你的用戶名"
$ git config --global user.email "輸入你的郵箱"

 

這樣就能夠初始化了。

若是已經初始化過以後,能夠用一下命令再次對初始化進行更改

 

$ git config --global --replace-all user.email "輸入你的郵箱"
$ git config --global --replace-all user.name "輸入你的用戶名"

 

而後再查看下
$ git config --list
發現修改爲功了。

 

提交文件到遠程倉庫的命令


git add .                       提交新文件和被修改文件,不包括被刪除文件
git add -u                    提交被修改和被刪除文件,不包括新文件
git add -A                    提交更更改過的代碼
git commit -m "提交行爲描述"
git push -u origin branchname           提交代碼到遠程倉庫

複製GitStats項目到本地
cd ~/dev
git clone git://github.com/trybeee/GitStats.git
python ~/dev/gitstats/git-stats /youproject public

拉取分支到本地


git pull origin branchname
git branch -vv           查看分支關聯

 

分支管理


git branch                #查看本地分支
git branch --all                 #查看本地和遠程倉庫的分支
git checkout branchname                 #切換分支
git branch -d branchname                #刪除本地分支

 

查看分支提交日誌
git log -3

代碼回滾到指定版本
git reset --hard e377f60e28c8b84158

查看本地被修改的文件
git status

 

添加tag


git tag -a v1.1f9ba49
git tag -d v1.1f9ba49
git push origin v1.1f9ba49
git push origin --tags

 

Git配置ssh,解決每次提交代碼都要輸入用戶名和密碼的問題

 

緣由:你使用的是https 方式提交代碼,若改成ssh方式提交,問題就會獲得有效解決。
首先你能夠輸入命令:git remote -v,查看本身獲取和提交代碼的方式,如果https,則執行後顯示以下:

註釋:https方式和ssh 方式的git地址區別:
https: https://github.com/gongjenny/vue-come-on.git
ssh : git@github.com:gongjenny/vue-come-on.git

 

解決問題思路:

刪除以前配置的https,改成ssh方式

步驟一:

刪除以前配置的https 提交方式,在終端執行以下命令:
    **git remote rm origin**
    **git remote add origin git@github.com:gongjenny/vue-come-on.git**

    此時,若執行  **git push --set-upstream origin master**  ,會顯示以下:

說明當前權限不夠。

步驟二:

這時就須要你建立ssh的key值了,執行命令以下:
     **ssh-keygen -t rsa -C "用戶名"**,直接enter走完,顯示以下:

步驟三:

這時回到本身的github,找到右邊的**settings**,點擊進入,找到左邊**Deploy keys** 進入添加key頁面 ,

最後,執行 **git push --set-upstream origin master** 提交代碼。

    ###補充:
   若想用 **git push** 簡短的命令,須要配置:**git config --global push.default simple**  或  **git config --global push.default matching**

區別在於:前者只提交當前分支的內容,後者能夠提交在全部分支的內容。

 

Git如何強制覆蓋本地修改

打開項目git命令行,輸入

git fetch --all

git reset --hard origin/develop

第一個命令的意思是取回遠程端全部修改,第二句的意思是將版本號置到develop這個版本上。固然若是你須要置的是你本身的私有版本,也能夠置到私有版本號上。

到這裏再使用git pull去取項目的時候,就不會報修改未提交的問題了。

 

直接提交到倉庫

設置默認提交,

一、  提交文件

# git commit –a –m「modify book.cpp」

跳過暫存區域,直接提交到倉庫中,這裏主要用於提交修改的文件,文件必須使用git add 添加到暫存區域中

 

經常使用git遠程倉庫實現

一、  使用現有的git網絡倉庫服務

a)       Github。https://github.com                開源倉庫是免費的,私有倉庫收費

b)       BitBucket。https://bitbucket.org

二、  搭建本身的git倉庫服務器

 

git共享代碼步驟

/git步驟/
git pull                            //拉代碼
git status                        //查看狀態
git add .                         //添加全部 [或者.或者是路徑]
git commit -m "加備註"           //提交代碼
git push                              //推送到遠程分支
/步驟 end/

 

Windows系統中安裝使用git

1.安裝git
2.打開「Git」->「Git Bash」,若能打開,證實安裝成功。
3.配置用戶名和email
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
4.(初始化倉庫)先建立一個空文件夾,經過cd到達該目錄下,經過git init命令把這個目錄變成Git能夠管理的倉庫。
5.新建index.html--->git status--->git add index.html--->git commit -m "imdex.html"
如何新建index.html文件?
能夠直接在目錄下新建,或者輸入touch <name>/touch index.html
6.添加文件到Git倉庫,分兩步:
使用命令git add <file>(注意,可反覆屢次使用,添加多個文件)
使用命令git commit -m <message>,完成。
7.每次修改了文件都須要從新添加文件到Git倉庫。

 

經常使用git服務器目錄

一、git用戶的目錄/home/git

二、倉庫主目錄/home/git/repositories

三、權限管理倉庫 /home/git/repositories/gieolite-admin.git

四、/home/git/.gitolite目錄

五、ssh服務器的key目錄/home/git/.ssh

六、受權文件/home/git/.ssh/authorized_keys

 

刪除文件

一、  刪除文件

# rm README

二、  從git中刪除文件

# git rm README

這裏雖然刪除了README文件,可是在git的歷史版本庫中依然存在,能夠經過回溯到歷史版本庫找回

三、  提交操做

# git commit –m 「deleteREADME」

四、  經過日誌文件查看歷史操做

# git log

重命名文件

# git mv book.cppbookSource.cpp

# git commit –m 「renamebook.cpp filename to bookSource.cpp」

這裏的git mv命令至關於在本地重命名文件,刪除倉庫的文件,將重命名的文件添加到暫存區域,即:

# mv book.cppbookSource.cpp

# git rm book.cpp

# git addbookSource.cpp

github新建項目

複製項目地址

git clone 粘貼項目地址 文件夾名稱

代碼放進生成的文件夾

進入目標文件夾

git add *
git commit -m '提交的描述'
git push


git pull [倉庫連接]  拉取倉庫信息

git checkout [分支名] 選擇分支

git branch  查看全部分支

git branch [分支名] 選擇某一個分支

git branch -d [分支名] 刪除某一個分支

git branch -D [分支名] 強制刪除某一個分支

git merge [分支名] 合併某一個分支進來

 

附:gui使用

Git gui,打開倉庫所在目錄會自動識別當前的倉庫,

 

查看master分支歷史,能夠看到全部的歷史版本及修改日誌。

 

第五節   Git遠程倉庫

以前提到的操做都是本地的操做,並無同步到git服務器上,使得其餘開發者沒法及時查看到倉庫的動態。

 

遠程倉庫中只保存的.git文件夾

 

Git支持的訪問協議

一、  Local 本地型

二、  SSH

三、  Git

四、  HTTP/HTTPS,只能下載數據,不能提交數據

 

git經常使用的命令 : 

# 分支的建立和合並
git branch yourbranch
git checkout yourbranch
# 切換到yourbranch
# 開發yourbranch分支,而後開發以後與master分支合併
git checkout master
git merge yourbranch
git branch -d yourbranch


# 合併完後刪除本地分支
如何將牛人的遠程分支更新到本身的本地分支?
# 查看當前項目下遠程
git remote
# 增長新的分支連接,例如
git remote add niuren giturl…
# 獲取牛人的遠程更新
git fetch niuren
# 將牛人的遠程更新合併到本地分支
git merge niuren/master
生產力小技巧
codeshelver:給git庫作標籤
觀察的項目若是多了,怎麼管理?用codeshelver,安裝擴展以後,能夠對GitHub項目作標
籤。
gollum:利用git與github作wiki
gollum是一個基於git的輕型wiki系統。
GitHubwatcher: 監測重點項目
GitHubwatcher適用於通知不頻繁的情景

 

 

 

git學習路徑

 

 

參考連接:https://mp.weixin.qq.com/s/pN7MfMLdsOxckENzOwV4CQ

http://gitbook.liuhui998.com/4_9.html

https://blog.csdn.net/capricorn90/article/details/51168444

 

連接:

Git教程  :    http://tanqingbo.com/2017/03/17/Git%E6%95%99%E7%A8%8B/

Git官方文檔   :  https://git-scm.com/book/zh/v2

菜鳥 Git 教程:http://www.runoob.com/git/git-tutorial.html

Git教程 :https://www.w3cschool.cn/git/

 阿里雲    Git 系列 :    https://yq.aliyun.com/search/articles?spm=a2c4e.11163080.searchteam.1.1c262ec1JNbbf2&q=git

Git 魔法   : http://www.voidcn.com/course/project/nboypv

Git Community Book 中文版   : http://www.voidcn.com/course/project/wpavhb

Pro Git   : http://www.voidcn.com/course/project/pxalzh

闖過這 54 關,點亮你的 Git 技能樹 : http://www.voidcn.com/course/project/mqcfft

Git 命令參考 : http://www.voidcn.com/course/project/zifhxm

Git 工做流指南 :    http://www.voidcn.com/course/project/cvdsdt

沉浸式學 Git : http://www.voidcn.com/course/project/rwhooj

Pro Git v2 中文版 :     http://www.voidcn.com/course/project/fgcrkp    

(掘金小冊)Git 系列 : https://juejin.im/tag/Git

(易百教程) Git教程  : https://www.yiibai.com/git/

廖雪峯    Git教程   :  https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 

git 操做規範 : https://mp.weixin.qq.com/s/Rtt75DZFNugMrTvrlOLmAw

https://segmentfault.com/a/1190000014461898

Git入門指南,小白工程師必備 : https://mp.weixin.qq.com/s/S8nE-yev4dAiIJ4RLRcHcg

https://opensource.com/article/18/1/step-step-guide-git

碼雲git本地倉庫連接遠程倉庫  :    https://www.jianshu.com/p/094bbc061c21

本地項目上傳到GitHub,記錄  :https://www.qdfuns.com/article/42211/68b452c4ca8da4489bdef378ec833946.html

GIT 簡單的本地分支上傳遠程倉庫分支命令行    : https://www.qdfuns.com/article/23217/ce41ba88f8336c69fcaf041242defd6d.html

分支管理----解決衝突 :https://www.qdfuns.com/article/39070/ede22b7346be936c3653402498564212.html

分支管理----建立和合並分支  :https://www.qdfuns.com/article/39070/a6eceeca2e20786d748f7fc98f0b9571.html

關於git----分佈式版本控制系統----版本回退(簡潔版):https://www.qdfuns.com/article/39070/06a07d55026f3648d3ff1a3a785c0b85.html

關於git----分佈式版本控制系統----版本回退 : https://www.qdfuns.com/article/39070/594562b99d5c30d6267f9837e98d2679.html

用Git上傳文件到Github倉庫 : https://www.qdfuns.com/article/45274/021428b88a33cdff7396604fb638c9b2.html

 

搭建本身的小型Git Server  :https://blog.ansheng.me/article/build-your-own-mini-git-server

 

git基礎 : https://www.qdfuns.com/article/15102/fba34130a46751269081a24365b8decb.html

Git操做遠程庫  : https://www.qdfuns.com/article/14681/0a015e9084e78120ce87907cddf55a6e.html

Git經常使用命令總結  : https://www.qdfuns.com/article/15019/2d2ef6ba076ae59db56988d4e9b98c51.html

Git的簡單使用 :   https://www.qdfuns.com/article/14681/a47ee36c9856da591599f56354fef5e3.html

git(8)系列  :https://www.cnblogs.com/wonux/tag/git/

 

Git 經常使用命令速查表(圖文+表格) : https://www.jb51.net/article/55442.htm

在 Git 中怎樣克隆、修改、添加和刪除文件? : https://mp.weixin.qq.com/s/g_1iDs0W1ToGlmYoUbjEpw

手把手指導您使用 Git  : https://mp.weixin.qq.com/s/B7rjSShEFBkuxM7wsNtlkg

Git使用教程:最詳細、最傻瓜、最淺顯、真正手把手教 : https://mp.weixin.qq.com/s/IDChhMK_BR1dUJemOnwv9Q

Git入門篇 (資料):https://www.jianshu.com/p/9bb7d10390b5

CentOS下git命令行操做(圖文教程) : https://www.jb51.net/os/RedHat/511705.html

 腳本之家   Git 基礎   : http://shouce.jb51.net/gitbook/index.html

原  Git(一):git基本的工做流程 :  https://blog.csdn.net/ZuoAnYinXiang/article/details/78471574

在 Linux 下搭建 Git 服務器:https://mp.weixin.qq.com/s/05KzYi7w2QDGu9t4KSZNHQ

Git 簡明指南:https://mp.weixin.qq.com/s?__biz=MzI3MTI2NzkxMA==&mid=2247485576&idx=1&sn=0abc45398e306bf46307aa1f56447a4a&chksm=eac529a1ddb2a0b7fb531084c62377738b4639fb87add3fba2b6fe184c8256697358d89c00bd&scene=21#wechat_redirect

Git經常使用命令速查手冊 : https://mp.weixin.qq.com/s/SGRcE9EPOu4Tph65tzPzQw

git常見命令  :  http://www.voidcn.com/code/p-uglsvadz-k.html

Git 經常使用命令速查  :  https://www.jb51.net/article/55442.htm

git 命令速查表   :  https://www.cnblogs.com/yllam/p/5005090.html

git參考手冊--文字說明+git速查命令表(圖片)   :  https://www.imooc.com/article/14193

Git 工做流程         :  https://www.cnblogs.com/itech/p/5227089.html

Git 進階指南   :  https://www.cnblogs.com/itech/p/5188942.html

git代碼回滾:Reset、Checkout、Revert的選擇   :   https://www.cnblogs.com/itech/p/5188933.html

git代碼合併:Merge、Rebase的選擇    :  https://www.cnblogs.com/itech/p/5188932.html

四種常見 Git 工做流比較     : https://www.cnblogs.com/itech/p/5188929.html

 

Git 教程之服務器搭建詳解  :  https://www.jb51.net/article/92248.htm

Git 刪除遠程服務器文件同時保留本地文件實例詳解 : https://www.jb51.net/article/115029.htm

git恢復刪除的分支及內容的方法 : https://www.jb51.net/article/127190.htm

Git如何刪除歷史記錄中的大文件詳解 : https://www.jb51.net/article/142924.htm

一鍵備份gitolite服務器的Shell腳本 : https://www.jb51.net/article/54594.htm

git 刪除分支和回滾的實例詳解 : https://www.jb51.net/article/122636.htm

Git 詳細介紹查看、刪除、重命名遠程分支和tag  : https://www.jb51.net/article/103895.htm

git分支的建立、切換、合併及刪除操做小結  :  https://www.jb51.net/article/97739.htm

git修改和刪除功能_動力節點Java學院整理 : https://www.jb51.net/article/121403.htm

CentOS中Git客戶端的安裝和基礎配置教程  :  https://www.jb51.net/os/RedHat/454670.html

CentOS系統上搭建Git版本控制服務器的教程  :  https://www.jb51.net/os/RedHat/454703.html

centos6.5用yum安裝git的方法 : https://www.jb51.net/os/RedHat/149671.html

centos在線安裝git的方法 : https://www.jb51.net/os/RedHat/149653.html

說說git(一)  :https://www.jianshu.com/p/094309c25a85

說說git(二) : https://www.jianshu.com/p/acaa6452d178

說說git(三):https://www.jianshu.com/p/f723ef16e604

關於 Git SSH 使用的項目實踐               : : https://www.jianshu.com/p/814d299541f3

Streamsets項目git環境搭建        :      https://www.jianshu.com/p/9be8f4a7aaa5

使用Nginx反代理訪問Git解決413問題                  :        https://www.jianshu.com/p/f06c09933b00

解決git本地多ssh key的問題       :       http://blog.51cto.com/nolinux/1753470

關於 Git SSH 使用的項目實踐      :         https://www.jianshu.com/p/814d299541f3

GIt的備份和恢復   :http://blog.51cto.com/sgk2011/1925939

PHP實現git部署的方法    :  https://mp.weixin.qq.com/s/QFpKu8oKoxOEA1BmT7pNhg

 

CentOS系統安裝使用版本控制系統Subversion的方法  : https://www.jb51.net/os/RedHat/306574.html 

CentOS安裝TortoiseSVN 客戶端 : https://www.jb51.net/os/RedHat/220595.html

CentOS 6.3下使用Gitosis安裝搭建Git Server教程  : https://www.jb51.net/os/RedHat/216133.html

Centos Nginx + Svbversion配置安裝方法分享  :  https://www.jb51.net/os/RedHat/35924.html

 

Git客戶端TortoiseGit(Windows系統)的使用方法   :  https://www.jb51.net/article/55440.htm

Linux下Git圖形化界面客戶端盤點:https://mp.weixin.qq.com/s/UmkBmllqNmcjPYOaGAkSsQ

 

走進Git時代  https://mp.weixin.qq.com/s/K5zq7pfk0yRt_tT-ICFKYA

從SVN遷移到GIT教程: https://m.aliyun.com/yunqi/articles/6046

git和SVN的區別  https://mp.weixin.qq.com/s/JkZpFSaEwVykjiNVaEdulQ

Git 指南 : https://wdxtub.com/2016/08/23/git-guide/

分佈式版本控制系統 Git 教程 : https://www.cnblogs.com/jingmoxukong/p/8011012.html

廖雪峯的 git 教程 : https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

腳本之家 Git系列 :  http://so.jb51.net/cse/search?s=10520733385329581432&entry=0&ie=gbk&nsid=0&ie=gbk&q=git

簡書  git命令 :https://www.jianshu.com/p/c720c914ce03

Git原理 :https://mp.weixin.qq.com/s/W7qCtOPzfWaG2HybobZYnw

git經常使用操做 : https://blog.csdn.net/paul_wei2008/article/details/41243031

 git/svn : https://blog.csdn.net/chdhust/article/category/5696673

git : https://blog.csdn.net/m0_37450089/article/category/7308830

10分鐘搭建git服務器 : https://www.kelen.cc/posts/5b4a0ed1e7d2923d6fcb8d14

Linux構建Git代碼倉庫與自動部署 ; https://juejin.im/post/5b1a394e5188257d5a30c7a7

Git原理與高級使用(2) : https://juejin.im/post/5ac9becb518825556f55b360

如何在 git commit message 中玩溜 emoji :  https://juejin.im/post/5b0262edf265da0b9b079fa7

git-新手入職必備操做流程 : https://mp.weixin.qq.com/s/eGPc9fIpsLr3tpxk7L89AA

Git workflow 詳談  :  https://juejin.im/post/5844507761ff4b006c3359a9

Git 本地倉庫和裸倉庫 : https://juejin.im/post/5842f9b861ff4b005889ade6

建立git私有倉庫             : https://www.liaoxuefeng.com/article/001373894410719a19c79d040c84fd4a7492efc60081be1000

git 常見操做          : https://www.jianshu.com/p/c38d00a3736c

Git使用中的一些奇技淫巧  :  https://mp.weixin.qq.com/s/-95z7MCleajm0S_zd8lD4g

git查看本地和建立分支、上傳分支、提交代碼到分支、刪除分支等   : https://blog.csdn.net/Sky786905664/article/details/79257409

轉  代碼回滾:git reset、git checkout和git revert區別和聯繫  :  https://blog.csdn.net/Sky786905664/article/details/79150828

轉  Git 經常使用命令大全  :  https://blog.csdn.net/Sky786905664/article/details/78557397

轉  GitHub入門:如何上傳與下載工程?  :  https://blog.csdn.net/Sky786905664/article/details/54928717

從0學Git     :  https://blog.csdn.net/Sky786905664/article/details/51916276

CentOS6.8 部署Tomcat+jenkins+git+maven+ant 持續集成              :  http://blog.51cto.com/zlyang/1939843

Git 恢復誤刪除的本地倉庫文件             : http://blog.51cto.com/zlyang/1939983

在Linux下搭建Git服務器 (CENTOS 6.6)     :  https://www.jianshu.com/p/40972dd4809e

git常見用法介紹            :     https://www.cnblogs.com/crazyacking/p/6622986.html

git切換到遠程分支      :    https://www.cnblogs.com/crazyacking/p/5620655.html

在 Git 中 Checkout 歷史版本           :      https://www.cnblogs.com/crazyacking/p/5620635.html

Git 提交的正確姿式:Commit message 編寫指南    :     https://www.cnblogs.com/crazyacking/p/5121591.html

(劉逾老師 )使用Git分佈式版本控制系統 : https://www.linuxprobe.com/chapter-21.html

纔開始學git,慢慢豐富,下面是一些參考資料。

概述:

http://guibin.iteye.com/blog/1014369

工做區、暫存區、版本庫的概念

http://www.worldhello.net/2010/11/30/2166.html

progit

http://github.danmarner.com/section/toc/

經驗

http://www.open-open.com/lib/list/282?pn=1

http://www.open-open.com/lib/view/open1328069733264.html

 

Git 手冊 :https://blog.csdn.net/oDeviloo/article/details/71786401

 

 

初見github  :https://www.qdfuns.com/article/14681/cecf58f5ef1b48a125f0383dd69192ef.html

本地項目上傳到GitHub,記錄 :https://www.qdfuns.com/article/42211/68b452c4ca8da4489bdef378ec833946.html

Git和GitHub資料彙總 :https://blog.csdn.net/u013162035/article/details/78773539

Git與Github使用筆記  :https://blog.csdn.net/column/details/18245.html

第7章 Git和Github的使用 :https://blog.csdn.net/u013162035/article/details/78476880

第8章 github常見操做和常見錯誤 : https://blog.csdn.net/u013162035/article/details/78476651

第4章 TortoiseGit :https://blog.csdn.net/u013162035/article/details/78475662

搭建本身的小型Git Server               :        https://blog.ansheng.me/article/build-your-own-mini-git-server

 

第3章 Git相關 : https://blog.csdn.net/u013162035/article/details/78466265

第2章 Git命令的基本操做 :https://blog.csdn.net/u013162035/article/details/78465997

第1章 Git入門 :https://blog.csdn.net/u013162035/article/details/78464161

 

 

 

GitLab          GitHub       

GitHub 使用手冊 - 基礎篇       : http://www.voidcn.com/course/project/fhprwi

(掘金小冊) GitHub 系列 : https://juejin.im/tag/GitHub

原  Github項目解析系列   (15):https://blog.csdn.net/qq_23547831/article/category/6273517

GitHub 祕籍 : http://www.voidcn.com/course/project/kqnkrj

(易百教程) GitLab教程  : https://www.yiibai.com/gitlab/

GitHub Pages 指南       : http://www.voidcn.com/course/project/mswxwu

GitHub 開發指南 : http://www.voidcn.com/course/project/fsntud

github使用bash上傳之總結版 : https://www.qdfuns.com/article/33603/398ec378be6b1bbd83cbeb9c4d850c7c.html

Linux下GitLab如何安裝部署  : https://www.jb51.net/LINUXjishu/512167.html

意淫系列-GitHub教程   :    https://blog.csdn.net/googler_offer/article/details/79971779

3個搜索技巧!在 GitHub上快速找到實用資源!   :https://mp.weixin.qq.com/s/WEDQp8IoIn3YHvvoKeXVIQ

用GitLab搭建本身的私有GitHub庫的步驟   :  https://www.jb51.net/article/128349.htm

 

gitlab工做流程簡介        :     https://www.cnblogs.com/crazyacking/p/5618091.html

使用GitHub創建我的網站         :          https://www.cnblogs.com/crazyacking/p/4678976.html

TortoiseSVN  1.5 :http://shouce.jb51.net/tsvn/1.5/

私立gitlab服務器   :  http://blog.51cto.com/leoheng/2136882

 

 

加速國內Github訪問 : https://www.jianshu.com/p/8d6554919c89

Linux github 鏈接   :  https://www.jianshu.com/p/babcfd056196

靜態博客 Github 並存指南         :     https://wdxtub.com/2016/01/05/hexo-github-site/

gitlab的鉤子相關配置      http://fighter.blog.51cto.com/1318618/1670667        

CentOS7.2安裝GitLab-CE      :   http://blog.51cto.com/ygqygq2/1861672

windows下使用TortoiseGit在Git@OSC代碼託管         :    http://blog.51cto.com/ygqygq2/1718988

TortoiseGit之配置密鑰               :    http://blog.51cto.com/ygqygq2/1718283

gitlab數據遷移故障總結         :           http://blog.51cto.com/11291941/1868573

基於 GitLab 的 CI 實踐  :  https://mp.weixin.qq.com/s/ZzJnZtZn3sX-JmPfs1uASg

 

(轉)SVN-服務器發送了意外的返回值(405 Method Not Allowed)    :   http://blog.chinaunix.net/uid-25266990-id-2948841.html

svn用戶管理腳本   :   http://blog.chinaunix.net/uid-25266990-id-2774758.html

私立SVN服務器  :  http://blog.51cto.com/leoheng/2121609

 

 

[SCM]軟件配置管理            :  https://www.cnblogs.com/itech/archive/2011/08/26/2154623.html

git 撤銷修改以及刪除文件 : https://www.cnblogs.com/x123811/p/6047266.html

 

 

 

 

GitLab                     

企業級GitLab倉庫環境構建      :        http://blog.51cto.com/zhaochj/1737738

Gitlab 工具Source tree使用    : http://blog.51cto.com/sgk2011/1926198

gitlab更改默認Nginx 置頂    : http://blog.51cto.com/sgk2011/1926119

Gitlab遷移  :    http://blog.51cto.com/sgk2011/1925946

Gitlab用戶權限管理  : http://blog.51cto.com/sgk2011/1925922

Gitlab的管理使用手冊 薦  :         http://blog.51cto.com/dl528888/1305656

配置gitlab環境實現代碼管理及Web Hook測試和ldap認證 薦       : http://blog.51cto.com/rfyiamcool/1365521

Gitlab的管理使用手冊 薦  :  http://blog.51cto.com/dl528888/1305656

在centos裏安裝gitlab 薦 :http://blog.51cto.com/dl528888/1213286

gitlab 災備  :https://www.jianshu.com/p/78d8805cddbf

 

 

企業裏實現代碼自動部署、回滾的解決方案——Caphub 薦  :    http://blog.51cto.com/dl528888/1276174

自動化代碼部署、代碼回滾、命令執行軟件之capistrano 薦  :  http://blog.51cto.com/dl528888/1270670

git(4篇)  :  https://www.cnblogs.com/sparkdev/category/905066.html

git 操做規範 : 

https://segmentfault.com/a/1190000014461898

 

 

 

 

 

it刪除某次提交(某個commit)的方法 : https://www.36nu.com/post/275

相關文章
相關標籤/搜索