github--git的使用

來源:互聯網
上載者:User

github--git的使用

 

一、下載軟體

https://git-for-windows.github.io/

二、安裝

安裝成功

三、配置

1、開啟“Git”->“Git Bash”

2、配置使用使用者

因為git是分布式版本控制系統,所以每個機器都必須自報家門:名字和email

在命令列中輸入

 

$ git config --global user.name "Your Name"$ git config --global user.email "email@example.com"

注意git config命令的--global參數,用了這個參數,表示你這台機器上所有的Git倉庫都會使用這個配置,當然也可以對某個倉庫指定不同的使用者名稱和Email地址。

 

3、建立版本庫

版本庫又名倉庫,英文名repository,你可以簡單理解成一個目錄,這個目錄裡面的所有檔案都可以被Git管理起來,每個檔案的修改、刪除,Git都能跟蹤,以便任何時刻都可以追蹤曆史,或者在將來某個時刻可以“還原”。

(1)、進入一個目錄

ls命令---列出所有的目錄

pwd命令----顯示當前路徑

(2)、建立一個空目錄myGit

使用命令 mkdir

註:如果你使用windows系統,為了避免遇到各種莫名其妙的問題,請確保目錄名(包括父目錄)不含中文。

(3)、把這個目錄變成git可以管理的倉庫

使用命令 git init

 

瞬間Git就把倉庫建好了,而且告訴你是一個空的倉庫(empty Git repository),細心的讀者可以發現目前的目錄下多了一個.git的目錄,這個目錄是Git來跟蹤管理版本庫的,沒事千萬不要手動修改這個目錄裡面的檔案,不然改亂了,就把Git倉庫給破壞了。

如果你沒有看到.git目錄,那是因為這個目錄預設是隱藏的,用ls -ah命令就可以看見。


(4)、把檔案添加到版本庫

編寫一個test.txt檔案

一定要放在myGit目錄下(子目錄也行)。【這是一個git倉庫】

***********把一個檔案放到git倉庫需要兩步**********

第一步:使用命令 git add,把檔案添加到倉庫。

沒有任何訊息顯示,說明添加成功。【Unix的哲學是“沒有訊息就是好訊息”】

第二步:使用命令git commit,把檔案提交到倉庫。

-m後面輸入的是本次提交的說明,可以輸入任意內容,當然最好是有意義的,這樣你就能從記錄裡方便地找到改動記錄。

一次添加多個檔案

 

$ git add file1.txt$ git add file2.txt file3.txt$ git commit -m "add 3 files."

 

四、操作

1、git status命令查看結果

修改前

修改後

2、git diff命令查看具體修改了什麼內容

3、git log命令查看曆史操作記錄

git log --pretty=oneline命令簡化資訊

4、git reset命令版本回退

1)、HEAD

首先,Git必須知道目前的版本是哪個版本,在Git中,用HEAD表示目前的版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一樣),上一個版本就是HEAD^,上上一個版本就是HEAD^^,當然往上100個版本寫100個^比較容易數不過來,所以寫成HEAD~100。

2)、版本號碼

5、git reflog命令用來記錄你的每一次命令

6、git checkout -- file在工作區的修改全部撤銷。

 

命令git checkout -- readme.txt意思就是,把readme.txt檔案在工作區的修改全部撤銷,這裡有兩種情況:

一種是readme.txt自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;

一種是readme.txt已經添加到暫存區後,又作了修改,現在,撤銷修改就回到添加到暫存區後的狀態。

總之,就是讓這個檔案回到最近一次git commit或git add時的狀態。


註:git checkout -- file命令中的--很重要,沒有--,就變成了“切換到另一個分支”的命令。

7、cat命令查看檔案內容

 

總結:

情境1:當你改亂了工作區某個檔案的內容,想直接丟棄工作區的修改時,用命令git checkout -- file。

情境2:當你不但改亂了工作區某個檔案的內容,還添加到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset HEAD file,就回到了情境1,第二步按情境1操作。


8、rm命令刪除檔案

rm----直接在檔案管理工具中刪除檔案,但是工作區和版本庫會不一致。

git rm---使用命令git rm刪除檔案,在使用命令git commit

如果不小心刪除了,可以重新從版本庫中checkout一份下來。

使用命令git checkout -- file

五、遠程倉庫

1、準備工作

第1步:建立SSH Key。在使用者主目錄下,看看有沒有.ssh目錄,如果有,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個檔案,如果已經有了,可直接跳到下一步。如果沒有,開啟Shell(Windows下開啟Git Bash),建立SSH Key:

如下:

第2步:登陸GitHub,開啟“Account settings”,“SSH Keys”頁面:

然後,點“Add SSH Key”,填上任意Title,在Key文字框裡粘貼id_rsa.pub檔案的內容:

點擊“Add Key”,如下:

 

為什麼GitHub需要SSH Key呢?因為GitHub需要識別出你推送的提交確實是你推送的,而不是別人冒充的,而Git支援SSH協議,所以,GitHub只要知道了你的公開金鑰,就可以確認只有你自己才能推送。

當然,GitHub允許你添加多個Key。假定你有若干電腦,你一會兒在公司提交,一會兒在家裡提交,只要把每台電腦的Key都添加到GitHub,就可以在每台電腦上往GitHub推送了。

最後友情提示,在GitHub上免費託管的Git倉庫,任何人都可以看到喔(但只有你自己才能改)。所以,不要把敏感資訊放進去。

如果你不想讓別人看到Git庫,有兩個辦法,一個是交點保護費,讓GitHub把公開的倉庫變成私人的,這樣別人就看不見了(不可讀更不可寫)。另一個辦法是自己動手,搭一個Git伺服器,因為是你自己的Git伺服器,所以別人也是看不見的。這個方法我們後面會講到的,相當簡單,公司內部開發必備。


2、建立遠程倉庫

3、關聯遠程庫

命令參考

命令:

$ git remote add origin git@github.com:wuhaining/wuhaining.github.io.git

 

查看

$git remote -v

推送本地內容到遠程庫

 

把本地庫的內容推送到遠程,用git push命令,實際上是把當前分支master推送到遠程。

由於遠程庫是空的,我們第一次推送master分支時,加上了-u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠端master分支關聯起來,在以後的推送或者拉取時就可以簡化命令。


到了這裡遇到一個問題?

按照網上分析所說:

遠程倉庫中代碼版本與本地不一致衝突導致的。

 

解決:

git pull

再自動merge或手動merge衝突

再次git push


這樣就同步了

 

總結:

要關聯一個遠程庫,使用命令git remote add origin git@server-name:path/repo-name.git;

關聯後,使用命令git push -u origin master第一次推送master分支的所有內容;

此後,每次本地提交後,只要有必要,就可以使用命令git push origin master推送最新修改;


4、建立分支

 

首先,我們建立dev分支,然後切換到dev分支:

$ git checkout -b devSwitched to a new branch 'dev'

git checkout命令加上-b參數表示建立並切換,相當於以下兩條命令:

$ git branch dev$ git checkout devSwitched to branch 'dev'

然後,用git branch命令查看當前分支:

$ git branch* dev  master

git branch命令會列出所有分支,當前分支前面會標一個*號。

 

測試

改變內容

提交

 

現在,dev分支的工作完成,我們就可以切換回master分支:

$ git checkout masterSwitched to branch 'master'

切換回master分支後,再查看一個readme.txt檔案,剛才添加的內容不見了!因為那個提交是在dev分支上,而master分支此刻的提交點並沒有變:

 

現在,我們把dev分支的工作成果合并到master分支上:

$ git merge devUpdating d17efd8..fec145aFast-forward test.txt | 1 + 1 file changed, 1 insertion(+)

git merge命令用於合并指定分支到當前分支。合并後,再查看test.txt的內容,就可以看到,和dev分支的最新提交是完全一樣的。

注意到上面的Fast-forward資訊,Git告訴我們,這次合并是“快進模式”,也就是直接把master指向dev的當前提交,所以合并速度非常快。

當然,也不是每次合并都能Fast-forward,我們後面會將其他方式的合并。

合并完成後,就可以放心地刪除dev分支了:

$ git branch -d devDeleted branch dev (was fec145a).

刪除後,查看branch,就只剩下master分支了:

$ git branch* master

因為建立、合并和刪除分支非常快,所以Git鼓勵你使用分支完成某個任務,合并後再刪掉分支,這和直接在master分支上工作效果是一樣的,但過程更安全。

Git鼓勵大量使用分支:

查看分支:git branch

建立分支:git branch

切換分支:git checkout

建立+切換分支:git checkout -b

合并某分支到當前分支:git merge

刪除分支:git branch -d

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.