柚子快報激活碼778899分享:Git原理與應用(三)遠程操作
柚子快報激活碼778899分享:Git原理與應用(三)遠程操作
Git原理與應用[三]遠程操作
一.遠程倉庫操作1.理解分布式版本控制系統(tǒng)2.遠程倉庫的創(chuàng)建3.遠程倉庫克隆到本地4.向遠程倉庫推送:push5.拉取遠程倉庫:pull
二.模擬進行多人協(xié)作開發(fā)1.準備工作2.多人協(xié)作11.多人協(xié)作開發(fā)1.Linux用戶開發(fā)2.Windows用戶開發(fā)
2.合并沖突3.分支合并4.小結
2.多人協(xié)作21.多人協(xié)作開發(fā)1.Linux用戶開發(fā)2.Windows用戶開發(fā)
2.意外來臨3.Windows用戶繼續(xù)開發(fā)1.pull2.merge
4.Linux用戶merge
三.補充1.遠程分支刪除之后,本地git branch -a依然能夠看到的解決方法2.給配置起別名3.標簽管理1.理解標簽2.創(chuàng)建標簽3.操作標簽
一.遠程倉庫操作
Git是一個分布式版本控制系統(tǒng)
1.理解分布式版本控制系統(tǒng)
在分布式版本控制系統(tǒng)中: 每一臺電腦都有完整的版本庫,你可以在本地分支上進行提交代碼,合并分支,解決沖突等操作 在多人協(xié)作開發(fā)的時候只需要把各自的修改推送給對方,就能夠看到對方修改后的代碼了
2.遠程倉庫的創(chuàng)建
登錄碼云網(wǎng)站,注冊賬號 新建遠程倉庫 然后點擊創(chuàng)建 我們也可以將這個倉庫設置為開源
創(chuàng)建成功后我們要將這個遠程倉庫克隆到本地
3.遠程倉庫克隆到本地
克隆/下載遠程倉庫到本地需要使用
git clone 遠程倉庫鏈接
我們可以在這里找到剛才遠程倉庫的鏈接 我們在這里使用https協(xié)議來克隆遠程倉庫到本地 克隆倉庫時需要我們輸入碼云平臺的密碼和碼云平臺的用戶名 這個@后面的東西就是用戶名 wu-zaishuo 下面我新創(chuàng)建了一個目錄: blogforgit 然后進入到這個目錄當中進行git clone把遠程倉庫 git_blog克隆過來
4.向遠程倉庫推送:push
git push
如何配置:
git config user.name "用戶名稱"
git config user.email "email地址"
還有一個選項:--global:
git config --global user.name "用戶名稱"
git config --global user.email "email地址"
這個--global的意思就是:如果加上這個--global
那么就表示這臺機器上的所有的Git倉庫都會使用這個配置.
如果你希望在不同倉庫中使用不同的用戶名或email地址
那么可以不加這個選項
查看配置:
git config -l
刪除配置:
git config --unset user.name
git config --unset user.email
git config --global --unset user.name
git config --global --unset user.email
在git_blog里面新建一個文件test.txt 并寫入: 然后add commit 我之前配置過git了 此時我們的遠程倉庫里面就有test.txt這個文件了
git push 遠程主機名(默認是origin) 本地倉庫的分支名:遠程倉庫的分支名
注意:
如果本地倉庫的分支名跟遠程倉庫的分支名相同,則可以省略冒號這樣去寫
git push 遠程主機名(默認是origin) 本地倉庫的分支名
5.拉取遠程倉庫:pull
push是推送本地倉庫到遠程倉庫當中 作用: 在本地倉庫領先于遠程倉庫時 讓遠程倉庫跟本地倉庫同步
pull是拉取遠程倉庫到本地倉庫中 作用: 在遠程倉庫領先于本地倉庫時 讓本地倉庫跟遠程倉庫同步
git pull 遠程主機名(默認是origin) 遠程倉庫的分支名:本地倉庫的分支名
注意:
如果本地倉庫的分支名跟遠程倉庫的分支名相同,則可以省略冒號這樣去寫
git push 遠程主機名(默認是origin) 遠程倉庫的分支名
二.模擬進行多人協(xié)作開發(fā)
目前我們所學習到的內(nèi)容如下: 1.基本完成了Git本地倉庫的相關操作,git的基本操作,分支理解,版本回退,沖突解決等等 2.申請碼云賬號,克隆遠程倉庫,以及push和pull
下面我們模擬多人開發(fā)場景來更加深刻地學習Git
1.準備工作
首先,我們在Windows環(huán)境下再去克隆那個git_blog遠程倉庫到本地,來模擬那位跟我們一起協(xié)作開發(fā)的小伙伴 打開之后就類似于這個樣子: 叫做Windows PowerShell 然后
git clone 遠程倉庫鏈接
克隆成功 我們現(xiàn)在就相當于有了兩個用戶,分別在Linux和Windows上面針對于于同一項目進行協(xié)作開發(fā)
然后我們在gitee網(wǎng)站上面新建一個dev分支來供我們使用 然后我們pull拉取到本地倉庫中,并且在本地倉庫也建立dev分支
注意:一定要先進入克隆下來的遠程倉庫里面,然后在進行下面的操作!
首先是我們Linux環(huán)境下的操作: 首先pull拉取遠程倉庫
git branch 查看本地分支
git branch -r 查看遠程分支
git branch -a 既可以查看遠程分支,又可以查看本地分支
然后在本地倉庫也建立dev分支
git checkout -b dev origin/dev
新建本地分支dev 并跟遠程分支dev進行關系鏈接
關于這個關系鏈接的作用:
如果有關聯(lián)起來的話
將來我們可以只使用git push來推送
而且對于git pull來說也是這樣
接著是Windows環(huán)境下的操作: 在Windows下建立dev分支時我們就不去一塊跟遠程分支dev建立關系鏈接了(為了說明建立關系鏈接跟不建立關系鏈接各自的操作) 至此,我們模擬多人協(xié)作開發(fā)的準備工作到此結束
2.多人協(xié)作1
1.多人協(xié)作開發(fā)
1.Linux用戶開發(fā)
首先我們作為Linux用戶現(xiàn)在dev分支上進行一次開發(fā),并且push到遠程 此時我們成功將file.txt推送到遠端的dev分支下了
2.Windows用戶開發(fā)
為了演示合并沖突,我們讓Windows用戶也去對file.txt做修改 并且push 新建一個文本文件并且寫入內(nèi)容 此時出現(xiàn)了合并沖突 Git提示我們先用git pull把最近的提交從遠程分支dev下拉取過來 然后在本地進行合并沖突然后再去推送
2.合并沖突
那么該怎么辦呢?
git branch --set-upstream-to=origin/dev dev
建立鏈接
然后我們解決沖突 然后重新add commit push 此時遠端倉庫就能夠看到我們的新提交了 對于我們Linux開發(fā)者來說要想看到新的代碼 只需要pull一下即可
3.分支合并
但是不要忘記 雖然我們是在dev分支上進行多人協(xié)作開發(fā),但是我們最終的目的是要將開發(fā)后的代碼合并到master上面去 讓我們的項目運行最新的代碼
切換至master分支,pull一下,保證本地的master分支是最新內(nèi)容切換至dev分支,合并master分支切換至master分支,合并dev分支將master分支推送到遠端 下面我們在Linux環(huán)境下進行這4步操作
第一步: 第二步: 第三步: 第四步: 此時master分支下已經(jīng)是最新代碼了 此時dev分支對我們來說已經(jīng)沒用了 我們直接在遠程倉庫中刪除dev分支
4.小結
2.多人協(xié)作2
一般情況下,如果有多需求需要多人同時進行開發(fā),是不會在一個分支上進行多人開發(fā)的,而是一個需求或者一個功能就需要創(chuàng)建一個feature分支
1.多人協(xié)作開發(fā)
1.Linux用戶開發(fā)
1.新增本地分支feature-1并切換 2.新增需求內(nèi)容:創(chuàng)建funtion1.txt文件 3.將feature-1分支推送到遠端
2.Windows用戶開發(fā)
1.新增本地分支feature-2并切換 2.新增需求內(nèi)容:創(chuàng)建funtion2.txt文件 3.將feature-2分支推送到遠端
此時,在本地,你看不?他新建的?檔,他看不?你新建的?檔。并且推送各?的分?時,并沒有任何沖突,你倆互不影響,?起來很舒服!
對于feature-1分支: 對于feature-2分支: 正常情況下,你們兩個人就可以在自己的分支上進行開發(fā)啦
2.意外來臨
不過意外來臨了,你的小伙伴生病了,但是它負責的需求還沒有開發(fā)完 需要你去幫他繼續(xù)開發(fā) 這時你就要在自己的機器上切換到feature-2分支幫他繼續(xù)開發(fā)
必須要先拉取遠程倉庫內(nèi)容創(chuàng)建feature-2本地分支并且跟遠程分支feature-2關聯(lián)起來切換到feature-2分支繼續(xù)開發(fā)推送內(nèi)容 第一步: 第二步: 如果有關聯(lián)起來的話 將來我們可以只使用git push來推送
第三步: 第四步: 此時推送成功
3.Windows用戶繼續(xù)開發(fā)
此時小伙伴痊愈了 繼續(xù)投入到開發(fā)當中
1.pull
先建立鏈接 然后pull pull成功 然后Windows用戶繼續(xù)開發(fā),并且率先開發(fā)完畢,開始merge
2.merge
1.切換至master,pull一下,保證本地的master是最新內(nèi)容 2.切換至feature-2分支,合并master分支 3.切換至master分支,合并feature-2分支 4.將master分支推送至遠端
第一步: 第二步: 第三步: 第四步: 推送成功
4.Linux用戶merge
我們可以發(fā)現(xiàn),還是那些操作
不過在第2步合并完master分支之后 我們可以先push一下 因為: 1.feature-1分?已經(jīng)merge進來了新內(nèi)容,為了保證遠程分?最新,所以最好push?下。 2.在實際的開發(fā)中,master的merge操作?般不是由我們??在本地進行的 其他?員merge時,操作的肯定是遠程分?,所以就要保證遠程分?的最新
如果merge出現(xiàn)了沖突,不要忘記需要commit才可以push!
第一步: 第二步: 第三步: 第四步: 此時開發(fā)成功 最后刪除feature-1和feature-2分支即可
三.補充
1.遠程分支刪除之后,本地git branch -a依然能夠看到的解決方法
當前我們已經(jīng)刪除了遠程的?個分?,使?git branch -a命令可以查看所有本地分?和遠程分?,但發(fā)現(xiàn)很多在遠程倉庫已經(jīng)刪除的分?在本地依然可以看到
git remote show origin
可以查看remote地址,遠程分支還有跟本地分支相對應的關系等等信息
git remote prune origin 刪除那些遠程倉庫中已經(jīng)不存在的分支
2.給配置起別名
Git支持對命令進行簡化 舉個例子: 將git log --pretty=oneline簡化為glog
git config alias.glog log --pretty=oneline
git config --global alias.glog log --pretty=oneline
這里的–global可加可不加, 加上之后這些命令在這臺機器的所有Git倉庫都有用 如果不加,那么只針對當前倉庫起作用
3.標簽管理
1.理解標簽
2.創(chuàng)建標簽
git tag 作用: 查看所有標簽
git tag 標簽名 作用: 創(chuàng)建標簽
默認情況下標簽是打在最新提交的commit上的 那如何在指定的commit上打標簽呢?方法是找到歷史提交的commit id,然后打上就可以了
注意:標簽不是按時間順序列出,而是按照字母排序的
git show 標簽名 作用: 查看標簽信息
git tag -a 標簽名 -m "說明文字" [commit id]
作用:創(chuàng)建帶有說明的標簽
-a用來指定標簽名
-m用來指定說明文字
打完標簽之后我們也可以使用tree .git來查看一下本地倉庫的變化 加深理解
3.操作標簽
git -d 刪除標簽
因為創(chuàng)建的標簽都只存儲在本地,不會?動推送到遠程.所以,打錯的標簽可以在本地安全刪除
推送某個標簽到遠程:
git push origin 標簽名
一次性把所有的標簽都推送到遠端:
git push origin --tags
如果該標簽已經(jīng)推送到遠程,那么刪除標簽就要這樣:
1.先從本地刪除
2.從遠程刪除:
刪除命令:git push origin :refs/tags/標簽名
以上就是Git原理與應用(三)遠程操作的全部內(nèi)容,希望能對大家有所幫助!
柚子快報激活碼778899分享:Git原理與應用(三)遠程操作
精彩內(nèi)容
本文內(nèi)容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉載請注明,如有侵權,聯(lián)系刪除。