git使用

一.Git命令(bash)

一.1.安裝

Linux:先從Git官網下載源碼,然后解壓,依次輸入:./config,make,sudo make install這幾個命令安裝就好了

Window:從官網下載安裝即可。https://git-scm.com

Window版安裝完后,右鍵菜單下出現兩個git功能,git bash(命令)和git gui(界面)。我們推薦使用命令操作

一.2.配置用戶名和密碼

用于提交代碼

git config --globaluser.name "Your Name"

git config --globaluser.email"email@example.com"

注意:

加上global,所有的系統都會使用這個賬號,也可以在每個項目中使用不同的用戶,去掉global在項目下運行命令即可。

一.3.創建git項目

在你想要使用git控制版本的項目目錄下,執行git init,會將這個項目納入到git管理。(目錄下會多出個.git的文件夾,類似svn)

一.4.添加項目到git倉庫

第一步:加入到暫存區,git addreadme.txt

第二步:將暫存區提交,git commit-m“寫段注釋”


我們可以時刻看看暫存區是否有代碼要提交,git status,類似于svn的同步

上圖表示修改過readme.txt,但是還沒有提交。

我們還可以使用git diff文件名來查看該文件修改過什么地方了。

一.5.查看歷史記錄

git log [--pretty=oneline ?--graph ]


前面一大段字符串是版本id,后面1.txt commit是本次操作

一.6.回退到歷史記錄

git reset --hardHEAD^

Head在git里表示最新版本的意思head^表示上一個版本。

如果要會退到指定版本,那么可以先查一下歷史記錄,找到要回到的版本號

git log [--pretty=oneline ?--graph ]

接著執行回退命令

git reset --hard3628164

3628164是版本號,不用寫全,寫幾位就可以了,git會自動匹配,也不要寫太少,否則會有多個版本

git reset --hard52918e

如果想從歷史版本回到最新版,現在歷史記錄git log已經查不到了,但是通過命令

git reflog可以查到,接著執行命令git reset --hard

一.7.撤銷修改

git checkout -- file或者

git reset HEAD file退回到該文件最新版本

一.8.刪除文件

git rm文件并且提交git commit

如果刪除還沒有提交,還可以還原

git checkout--文件名

如果刪除提交了,只能用回復歷史記錄了git reset --hard 版本號

一.9.遠程倉庫

一.9.1.遠程倉庫授權代碼提交權限

如果遠程項目開源,可略過此步

參考:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001374385852170d9c7adf13c30429b9660d0eb689dd43a000

第1步:創建自己的公鑰SSH Key

ssh-keygen -t rsa -C"youremail@example.com"

第2步:登陸遠程服務器如GitHub,打開“Account settings”,“SSH Keys”頁面

然后,點“Add SSH Key”,填上任意Title,在Key文本框里粘貼id_rsa.pub文件的內容


點“Add Key”,你就應該看到已經添加的Key:


一.9.2.添加到遠程庫

取得遠程倉庫的地址如:git@github.com:xxx/learngit.git

關聯遠程倉庫

git remote add origin git@github.com:xxx/learngit.git

把本地內容推送到遠程倉庫(第一次推送加-u,這樣會將本地的master和遠程master關聯)

git push -u origin master

以后再提交就不需加-u

git push origin master

一.9.3.從遠程倉庫下載(克隆)

git clone git@github.com:xxx/gitskills.git

注意:一般的git都會有多種協議 如https ?ssh ?git等

一.10.分支管理

一.10.1.創建和合并分支

Git默認一個master分支(主分支)


我們來創建一個dev分支

git checkout -b dev

Git checkout:創建 ?加上-b表示創建后切換到dev

等價于:git branch dev ??git checkout dev



我們看到所在的分支后面的任何操作都是在當前分支下操作,不會影響其他分支


如上圖,dev下我們開發的代碼已經是最新版里,但是master是舊的,我們需要將dev合并到master主分支上

首先:切換回主分支git checkoutmaster

然后:執行合并git mergedev

接著:合并完后,dev其實沒用了,可以刪除git branch -ddev

一.10.2.解決沖突

同svn沖突一樣,git也會出現沖突,當多個分支代碼都更新后


如上圖,分支master和分支feature1都修改了一個文件并且提交

這個時候任意一個分支執行合并都會出現沖突

<<<<<<

=======CreatinganewbranchisquickANDsimple.

>>>>>>> feature1

解決一個分支后繼續提交即可,如下


看一下歷史記錄

$ git log --graph --pretty=oneline --abbrev-commit

*59bc1cb conflict fixed

|\

| *75a857cANDsimple

* |400b400 & simple

|/

* fec145a branch test

一.10.3.遠程分支

在前面步驟中,我們關聯上了遠程代碼,下面直接提交代碼

git push originbranch-name

branch-name要和自己本地庫中分支對應

關聯方法(兩種):

1、git push -u origindev提價本地并在遠程創建并關聯

2、git checkout -b branch-name origin/branch-name創建本地分支名字和遠程一樣

git branch --set-upstream branch-name origin/branch-name關聯上

一.10.4.標簽

創建標簽:git tag v1.0

在分支上創建,標簽就屬于某個分支的

git push origin 可以推送一個本地標簽

git tag -d 可以刪除一個本地標簽

git push origin :refs/tags/可以刪除一個遠程標簽

一.10.5.忽略文件

有一些文件比如.classpath,或者系統生成的文件,對我們的項目沒有任何作用,但是git會管理。我們需要忽略他們

編寫.gitignore文件

內容是你要忽略的文件名

二.git客戶端(gui)









三.eclipse的git插件使用

第一步:安裝好git插件

第二步:打開git視圖


從遠程下載(可以是github或者其他遠程服務器如oschina)


選擇Clone URI





指定下載到本地路徑,其他默認即可,點finish完成下載

導入的eclipse里,隨意修改一個文件,提交


出現git gui一樣的界面,填上你的用戶名和密碼(如果要推送到遠程服務器,用戶必須是git服務器認證過的,除非服務器沒有設置權限認證)



如果遠程服務器已授權,可以推送到遠程服務器



實際開發中是自己公司的遠程服務器

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 聲明:這篇文章來源于廖雪峰老師的官方網站,我僅僅是作為學習之用 Git簡介 Git是什么? Git是目前世界上最先...
    橫渡閱讀 3,974評論 3 27
  • 原文地址主要用到的命令: git config user.name 設置用戶名 git config user....
    AFinalStone閱讀 482評論 0 2
  • 轉載自:http://www.open-open.com/lib/view/open1414396787325.h...
    Bbooo閱讀 475評論 0 3
  • 一:Git是什么? Git是目前世界上最先進的分布式版本控制系統。 二:SVN與Git的最主要的區別? SVN是集...
    毛子阿卡西閱讀 258評論 0 1
  • 一:Git是什么? Git是目前世界上最先進的分布式版本控制系統。 二:SVN與Git的最主要的區別? SVN是集...
    傲慢二鍋頭閱讀 428評論 0 0