github--git的使用

個人github https://github.com/wuhaining/-wuhaining.github.io


操作系統:window7

學習參考:

http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

http://www.cnblogs.com/BeginMan/p/3591005.html

http://blog.csdn.net/wirelessqa/article/details/20152651



一、下載軟件

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 protected]"

注意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 commitgit 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_rsaid_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 [email protected]: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 dev
Switched to a new branch 'dev'


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

$ git branch dev
$ git checkout dev
Switched to branch 'dev'

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

$ git branch
* dev
  master


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


測試

改變內容

提交


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

$ git checkout master
Switched to branch 'master'

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


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

$ git merge dev
Updating d17efd8..fec145a
Fast-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 dev
Deleted branch dev (was fec145a).


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

$ git branch
* master


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

Git鼓勵大量使用分支:

查看分支:git branch

創建分支:git branch <name>

切換分支:git checkout <name>

創建+切換分支:git checkout -b <name>

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

刪除分支:git branch -d <name>

5、克隆git




個人github https://github.com/wuhaining/-wuhaining.github.io


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