Windows下GIT的使用方法

文章引用自:Git使用教程    http://www.javashuo.com/article/p-xckfhbic-cq.html

本文章只限用於Windows,敬請參考html

注意:操做命令純屬手敲,可能會有錯誤,錯誤後參考文章連接!git

Git下載地址https://gitforwindows.org/  # Windows版本github

安裝方式:一頓操做猛如虎,一看全是下一步。煩請移步百度。windows

安裝完成後打開 Git Bash (打不開百度)app

1、初步打開Git Bash:

由於Git是分佈式版本控制系統,因此須要填寫用戶名和郵箱做爲一個標識。ssh

填寫用戶名: git config --global user.name "這裏填寫您的用戶名"分佈式

填寫郵箱:git config --global user.email "這裏填寫您的郵箱"fetch

2、建立版本庫(倉庫):

       什麼是版本庫?版本庫又名倉庫,英文名repository,你能夠簡單的理解一個目錄,這個目錄裏面的全部文件均可以被Git管理起來,每一個文件的修改,刪除,Git都能跟蹤,以便任什麼時候刻均可以追蹤歷史,或者在未來某個時刻還能夠將文件」還原」。加密

一、進入目錄

首先進入您的倉庫目錄:cd E:\code\testgit命令行

輸入pwd命令能夠查看當前的目錄

二、把目錄變成Git能夠管理的倉庫

改變倉庫屬性: git init Initialized empty Git repository in E:\code\testgit

這時候你當前testgit目錄下會多了一個.git的目錄,這個目錄是Git來跟蹤管理版本的,沒事千萬不要手動亂改這個目錄裏面的文件,不然,會把git倉庫給破壞了。

三、倉庫操做命令:

    把文件添加到暫存區: git add 您的文件(包括文件後輟名)

    把文件提交到倉庫: git commit -m 「您的文件(這個地方是提交文件的註釋)」

    查看未提交文件: git status

    查看文件修改的具體內容: git diff 您的文件(包括文件後輟名)

一次性把全部暫存庫的文件提交到倉庫: git commit

3、版本回退

一、查看文件操做日誌

查看文件詳細的操做日誌: git log

查看文件簡明的操做日誌: git log --pretty=oneline

二、文件版本回退操做

當前版本回退到上一個版本: git reset --hard HEAD^

當前版本回退到上上一個版本: git reset --hard HEAD^^

當前版本回退到指定n版本: git reset --hard HEAD~n

回退到上一個版本後後悔了,想返回原來最後一次的版本,能夠經過版本號回退:

獲取版本號: git reflog

       版本回退: git reset --hard 版本號(最前面的字符)

4、工做區與暫存區的區別

   工做區:就是你在電腦上看到的目錄,好比目錄下testgit裏的文件(.git隱藏目錄版本庫除外)。或者之後須要再新建的目錄文件等等都屬於工做區範疇。

版本庫(Repository):工做區有一個隱藏目錄.git,這個不屬於工做區,這是版本庫。其中版本庫裏面存了不少東西,其中最重要的就是stage(暫存區),還有Git爲咱們自動建立了第一個分支master,以及指向master的一個指針HEAD。

baGit提交文件到版本庫有兩步:

  第一步:是使用 git add 把文件添加進去,實際上就是把文件添加到暫存區。

  第二步:使用git commit提交更改,實際上就是把暫存區的全部內容提交到當前分支上。

5、Git撤銷修改和刪除文件操做

一、撤銷修改

工做區作的修改所有撤銷: git checkout -- 您的文件(包括文件後輟名)

注意:命令git checkout -- readme.txt 中的 -- 很重要,若是沒有 -- 的話,那麼命令變成建立分支了。

命令 git checkout -- readme.txt 意思就是,把readme.txt文件在工做區作的修改所有撤銷, 這裏有2種狀況,以下:

readme.txt自動修改後,尚未放到暫存區,使用 撤銷修改就回到和版本庫如出一轍的狀態。

另一種是readme.txt已經放入暫存區了,接着又做了修改,撤銷修改就回到添加暫存區後的狀態。

二、刪除文件

直接在文件庫刪除文件或者使用以下命令

刪除命令: rm 您的文件(包括文件後輟名)

在沒上傳到倉庫以前可使用上面的撤銷修改命令再把刪除的文件恢復回來

6、 遠程倉庫

 在瞭解以前,先註冊github帳號,因爲你的本地Git倉庫和github倉庫之間的傳輸是經過SSH加密的,因此須要一點設置:

一、 建立SSH key

在用戶主目錄下,看看有沒有 .ssh目錄,若是有,再看看這個目錄下有沒有 id_rsaid_rsa.pub 這兩個文件id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,能夠放心地告訴任何人。),若是有的話,直接跳過此以下命令,若是沒有的話,打開命令行,輸入以下命令:

ssh-keygen  -t rsa C 「您的郵箱」

2、添加key

    登陸github,打開右上角的齒輪按鈕「settings」中左側列表的SSH Keys,而後點擊「Add SSH Key」,填上任意title(標題),在Key文本框裏黏貼「id_rsa.pub」文件的內容。

點擊綠色按鈕「Add Key」就能夠看到添加完成的key。

三、如何添加遠程庫

如今的情景是:咱們已經在本地建立了一個Git倉庫後,又想在github建立一個Git倉庫,而且但願這兩個倉庫進行遠程同步,這樣github的倉庫能夠做爲備份,又能夠其餘人經過該倉庫來協做。

首先登陸github,而後右上角的「加」的符號「create a new repo」建立一個新的倉庫。

Repository name填入「您的倉庫名稱」,其餘保持默認設置,點擊綠色按鈕「Create repository」按鈕,就成功地建立了一個新的Git倉庫:

目前,在GitHub上的這個testgit倉庫仍是空的,GitHub告訴咱們,能夠從這個倉庫克隆出新的倉庫,也能夠把一個已有的本地倉庫與之關聯,而後,把本地倉庫的內容推送到GitHub倉庫。

如今,咱們根據GitHub的提示,在本地的testgit倉庫下運行命令: 

git remote add origin https://github.com/tugenhua0707/testgit.git(後面這個網址要用本身的)          # 克隆遠程倉庫內容

推送本地到遠程:git push -u origin master

因爲遠程庫是空的,咱們第一次推送master分支時,加上了 –u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯起來,在之後的推送或者拉取時就能夠簡化命令。推送成功後,能夠馬上在github頁面中看到遠程庫的內容已經和本地如出一轍了。

從如今起,只要本地作了提交,就能夠經過以下命令:

git push origin master

把本地master分支的最新修改推送到github上了,如今就擁有了真正的分佈式版本庫了。

四、如何從遠程庫克隆?

上面咱們瞭解了先有本地庫,後有遠程庫時候,如何關聯遠程庫。

  如今咱們想,假如遠程庫有新的內容了,我想克隆到本地來 如何克隆呢?

  首先,登陸github,建立一個新的倉庫,名字叫testgit2。

遠程庫準備好了,下一步就是使用命令git clone克隆一個本地倉庫了。

git clone 你的github地址

接着在本地目錄下就會生成testgit2 目錄了

7、建立與合併分支

在  版本回填退裏,你已經知道,每次提交,Git都把它們串成一條時間線,這條時間線就是一個分支。截止到目前,只有一條時間線,在Git裏,這個分支叫主分支,即master分支。HEAD嚴格來講不是指向提交,而是指向master,master纔是指向提交的,因此,HEAD指向的就是當前分支。

首先,咱們來建立dev分支,而後切換到dev分支上。以下操做:

 get checkout -b dev      # 建立並切換分支

git branch                # 查看當前分支

git checkout 命令加上 –b參數表示建立並切換,至關於以下2條命令

get checkout master(主分支)   # 切換回主分支

git merge dev                     # 在主分支上合併dev分支

      git branch -d dev               # 刪除dev分支

      git log                           # 查看分支狀況

總結建立與合併分支命令以下:

   查看分支:git branch

   建立分支:git branch name

   切換分支:git checkout name

建立+切換分支:git checkout –b name

合併某分支到當前分支:git merge name

刪除分支:git branch –d name

主次分支內容衝突解決辦法:

Git用<<<<<<<,=======,>>>>>>>標記出不一樣分支的內容,其中<<<HEAD是指主分支修改的內容,>>>>>fenzhi1 是指fenzhi1上修改的內容,修改分支內容和主分支內容一致便可解決

分支管理策略。

一般合併分支時,git通常使用」Fast forward」模式,在這種模式下,刪除分支後,會丟掉分支信息,如今咱們來使用帶參數 –no-ff來禁用」Fast forward」模式。

命令:

       在主目錄下合併分支目錄:

git merge no-ff  -m 本次命令作的事情註釋 dev

分支策略:首先master主分支應該是很是穩定的,也就是用來發布新版本,通常狀況下不容許在上面幹活,幹活通常狀況下在新建的dev分支上幹活,幹完後,好比上要發佈,或者說dev分支代碼穩定後能夠合併到主分支master上來。

8、BUG分支解決辦法

  在開發中,會常常碰到bug問題,那麼有了bug就須要修復,在Git中,分支是很強大的,每一個bug均可以經過一個臨時分支來修復,修復完成後,合併分支,而後將臨時的分支刪除掉。

 git stash         #把當前工做分區先隱藏

在主目錄新建進入臨時分支,查看並更改須要修改的代碼後,切換回主分支合併臨時分支,合併確認完成後,在進入以前的工做分支。

進入工做區後恢復以前隱藏的工做分區內容。

git stash list     # 查看以前的工做分區隱藏在哪一個地方

Git把stash內容存在某個地方了,可是須要恢復一下,可使用以下2個方法:

git stash apply恢復,恢復後,stash內容並不刪除,你須要使用命令git stash drop來刪除。

另外一種方式是使用git stash pop,恢復的同時把stash內容也刪除了。

9、多人協做

當你從遠程庫克隆時候,實際上Git自動把本地的master分支和遠程的master分支對應起來了,而且遠程庫的默認名稱是origin。

git remote     # 要查看遠程庫的信息

git remote v  # 要查看遠程庫的詳細信息

其中查看遠程庫的詳細信息後會有兩條推送信息,結尾括號內的fetch爲抓取,就是下載;push爲推送,就是把本地推送到遠程

一、 推送分支

git push origin master       # 本地主分支推送到遠程倉庫

那麼通常狀況下,那些分支要推送呢?

master分支是主分支,所以要時刻與遠程同步。

一些修復bug分支不須要推送到遠程去,能夠先合併到主分支上,而後把主分支master推送到遠程去。

二、 抓取分支

這個看原文章

相關文章
相關標籤/搜索