Git的使用

( 一)安裝git

$git  //可以先通過這個命令,檢查一下當前系統(tǒng)是否已經(jīng)安裝了git 

在linux環(huán)境下,安裝git.

操作系統(tǒng)是ubuntu時,可以直接輸入命令:

$sudo apt-get install git

如果是其他Linux版本,可以直接通過源碼安裝。先從Git官網(wǎng)下載源碼,然后解壓,依次輸入:

$./config
$make
$sudo make install     

這幾個命令安裝就好了。

在Mac OS X上安裝Git

如果你正在使用Mac做開發(fā),有兩種安裝Git的方法。

一是安裝homebrew,然后通過homebrew安裝Git,具體方法請參考homebrew的文檔:http://brew.sh/。安裝輸入如下:

$/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

第二種方法更簡單,也是推薦的方法,就是直接從AppStore安裝Xcode,Xcode集成了Git,不過默認沒有安裝,你需要運行Xcode,選擇菜單“Xcode”->“Preferences”,在彈出窗口中找到“Downloads”,選擇“Command Line Tools”,點“Install”就可以完成安裝了。

配置和coding的關(guān)聯(lián)

安裝完成后,還需要一步設(shè)置,在命令行輸入:

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

因為Git是分布式版本控制系統(tǒng),所以,每個機器都必須自報家門:你的名字和Email地址。

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

$ssh-keygen -t rss -C "yourmail@example.com" //創(chuàng)建ssh key

密鑰文件創(chuàng)建好后,會在用戶家目錄下創(chuàng)建一個隱藏目錄 .ssh,在.ssh目錄下有2個文件,id_rsa(私鑰文件)和id_rsa_pub(公鑰文件),你需要將公鑰文件中的內(nèi)容拷貝粘貼到 coding“個人賬戶”-“SSH公鑰”中,添加一個新公鑰。
在coding“項目”-“代碼”中,拷貝相應(yīng)的 SSH 方式訪問倉庫中的地址信息(例子中為git@git.coding.net:zhfjyq/xxxxx.git)

$git clone git@git.coding.net:zhfjyq/xxxxx.git

(二)本地使用

$git status  

查看當前倉庫狀態(tài),包括當前所處分支,提醒你有何被修改的文件準備被提交,有何文件被修改了,但沒有被add過。

$git branch wangyu      //創(chuàng)建新的wangyu 分支
$git checkout wangyu   //將當前分支切換到wangyu分支

參考命令:
$git branch //查看當前本地所有分支
$git checkout -b wangyu //切換到wangyu分支,如果沒有就先創(chuàng)建它,然后自動切換到當前

你可以把git的存儲環(huán)境分為:工作區(qū),暫存區(qū),當前分支;三部分
每次工作時,你需要切換到你的分支,
此時你在 webstorm里的各種操作,都是在工作區(qū),即是使工作區(qū)的文件發(fā)生了改變。
通過 add命令,將這些文件加到暫存區(qū),
然后通過commit命令將其提交到當前分支中;

$git add filename

將文件加到倉庫中。每次你對工程中的文件進行了修改,或者新增加了一些文件,都要通過add命令加到倉庫中,才能被后面所提交。

$git commit -m "填寫本次改動說明"

將文件提交到當前分支倉庫中

add 和 commit

解釋一下 add和commit:
一般情況下,要在commit執(zhí)行之前,把需要提交的文件都 add一遍,然后再提交。這樣才可以保證所有最新的修改都提交了。commit時,只會把最近一次add 時的修改內(nèi)容提交,在 add后進行的修改,將不會被提交,需要再次 add才行。

合并分支

$git checkout master  //切換當前分支到master
$git merge wangyu --no-ff   //合并指定分支到當前分支
$git branch -d wangyu  //刪除 wangyu分支

(三)遠程的多人協(xié)作

0A025G34-0.jpg

當團隊多人協(xié)作開發(fā)時,每個人在遠程都有自己的獨立分支,當你從遠程倉庫克隆完時,Git自動把本地的master分支和遠程的master分支對應(yīng)起來了,并且,遠程倉庫的默認名稱是origin。

$git remote -v  //查看遠程庫信息

如果要在個人分支上開發(fā),就必須創(chuàng)建遠程origin的個人分支到本地,用這個命令創(chuàng)建本地個人分支:

$git checkout -b wangyu origin/wangyu

建立在遠程的分支,主要有2個作用,一個是供團隊其他人使用,一個是供別人檢查工作進度

多人協(xié)作的工作模式通常是這樣:

首先,可以試圖用

$git push origin branch-name  //推送自己的修改;

如果推送失敗,則因為遠程分支比你的本地更新,需要先用

$git pull    //將遠程分支內(nèi)容拉下來,試圖合并;

如果合并有沖突,則解決沖突,并在本地提交;

沒有沖突或者解決掉沖突后,再用$git push origin branch-name推送就能成功!

如果$git pull提示“no tracking information”,則說明本地分支和遠程分支的鏈接關(guān)系沒有創(chuàng)建,用命令

$git branch --set-upstream-to branch-name origin/branch-name   //建立本地分支和遠程分支的關(guān)系

(四)常用場景解釋

關(guān)于git fetch和git pull

Git fetch origin master   //首先從遠程的origin的master主分支下載最新的版本到origin/master分支上
git log -p master..origin/master //比較本地的master分支和origin/master分支的差別
git merge origin/master //進行合并

上述過程其實可以用以下更清晰的方式來進行:

git fetch origin master:tmp //從遠程獲取最新的版本到本地的tmp分支上,之后再進行比較合并
git diff tmp 
git merge tmp

git pull:相當于是從遠程獲取最新版本并merge到本地
git pull origin master
上述命令其實相當于git fetch 和 git merge

撤銷本地修改

git reset --hard origin/master
git pull

當本地的修改,改亂了,不想要了,可以通過這個命令,完全恢復(fù)到原程的master 版本

git多用戶提交沖突

場景:用戶UserA修改了文件File1,用戶UserB也修改了文件File1并成功merge到了服務(wù)器上,而UserA和UserB改動了同一個代碼塊,當UserA拉取代碼時git無法merge此改動,就會出現(xiàn)如下錯誤提示,

error: Your local changes to the following files would be overwritten by merge: cn/trinea/appsearch/MainActivity.java
Please, commit your changes or stash them before you can merge.

這時
(1) 如果希望保存本地改動并拉下最新服務(wù)器代碼,手動merge,使用命令如下:

git stash
git pull
git stash pop
git diff -w /xxx/xxx/xxx.js

其中g(shù)it stash表示備份當前工作區(qū)內(nèi)容到git棧中,并使當前工作區(qū)內(nèi)容與上次提交時一致,然后git pull拉取最新代碼,git stash pop表示從Git棧中讀取最近一次保存的內(nèi)容,恢復(fù)工作區(qū)的相關(guān)內(nèi)容,最后git diff表示手動merge你之前沖突的文件
(2) 如果希望服務(wù)器上版本完全覆蓋本地修改,使用如下命令回退并更新:

git reset --hard
git pull
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.設(shè)置 初次使用需要設(shè)置姓名和郵箱git config --global user.name "git用戶名"g...
    jrg陳咪咪sunny閱讀 834評論 0 1
  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,850評論 4 54
  • Git和Github學習 1.創(chuàng)建版本庫 安裝git,至于這個話題就不細說了,按照你電腦的操作系統(tǒng)下載一個合適的g...
    郭子web閱讀 433評論 0 0
  • 一、git簡介 git是目前世界上被最廣泛使用的現(xiàn)代軟件版本管理系統(tǒng)。git本身亦是一個成熟并處于活躍開發(fā)狀態(tài)的開...
    s_在路上閱讀 3,152評論 0 10
  • 在每一個中華兒女的心中,內(nèi)心最最眷戀,而又無法割舍的情感來自于我們內(nèi)心最溫暖的地方,它有一個美麗并且神奇的名...
    白芷汀蘭閱讀 338評論 0 0

友情鏈接更多精彩內(nèi)容