欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

如何實(shí)現(xiàn)Linux操作Git遠(yuǎn)程倉(cāng)庫(kù)與本地倉(cāng)庫(kù)同步-創(chuàng)新互聯(lián)

這篇文章主要介紹“如何實(shí)現(xiàn)Linux操作Git遠(yuǎn)程倉(cāng)庫(kù)與本地倉(cāng)庫(kù)同步”,在日常操作中,相信很多人在如何實(shí)現(xiàn)Linux操作Git遠(yuǎn)程倉(cāng)庫(kù)與本地倉(cāng)庫(kù)同步問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”如何實(shí)現(xiàn)Linux操作Git遠(yuǎn)程倉(cāng)庫(kù)與本地倉(cāng)庫(kù)同步”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

成都創(chuàng)新互聯(lián)公司是專業(yè)的南關(guān)網(wǎng)站建設(shè)公司,南關(guān)接單;提供網(wǎng)站制作、成都做網(wǎng)站,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行南關(guān)網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

創(chuàng)建本地倉(cāng)庫(kù)并同步到遠(yuǎn)程
git是非常強(qiáng)大的版本管理工具。接下來(lái)的時(shí)間里,我就和大家絮叨絮叨git的入門:如何在本地創(chuàng)建一個(gè)git倉(cāng)庫(kù),并把自己的本地代碼同步到遠(yuǎn)程。此教程是在mac上操作的,如果您的系統(tǒng)是Linux,那么操作方法相同;如果您的系統(tǒng)是windows,那么,只需要把git的bash窗口調(diào)出來(lái),以后的過(guò)程也都與Linux相同。
一、首先,您需要安裝git,此步就忽略了,自行安裝即可。

二、假設(shè)你目前還沒(méi)有創(chuàng)建一個(gè)工作目錄,那么,先創(chuàng)建一個(gè)目錄吧,就叫StudyGit。

三、現(xiàn)在的StudyGit目錄還只是一個(gè)本地目錄,和git沒(méi)有任何關(guān)聯(lián),那么,我們?cè)趺礃硬拍馨堰@個(gè)目錄和git關(guān)聯(lián)起來(lái)呢?只需要進(jìn)入StudyGit目錄,運(yùn)行如下命令:



代碼如下:


yanyaozhen@macbookpro:~/Coding/Practice/StudyGit$ git init
Initialized empty Git repository in /Users/yanyaozhen/Coding/Practice/StudyGit/.git/



提示已經(jīng)說(shuō)明我們初始化了一個(gè)空的本地git倉(cāng)庫(kù)。如果你查看StudyGit下的所有文件時(shí),會(huì)發(fā)現(xiàn)一個(gè).git 的隱藏文件,這個(gè)文件非常重要,版本的控制就靠它了。同時(shí),如果你要部署應(yīng)用程序到生產(chǎn)環(huán)境時(shí),切記不要把該目錄部署到服務(wù)器,因?yàn)檫@可是黑客的最愛??!

四、接下來(lái)我們來(lái)看一個(gè)基本可以說(shuō)是用的最頻繁的一個(gè)命令:



代碼如下:


yanyaozhen@macbookpro:~/Coding/Practice/StudyGit$ git status



On branch master

Initial commit

nothing to commit (create/copy files and use "git add" to track)
沒(méi)錯(cuò),就是"git status"。這個(gè)命令用于查看當(dāng)前git的狀態(tài),比如,上面的例子中,我們剛創(chuàng)建了一個(gè)空的git倉(cāng)庫(kù),那么運(yùn)行該指令時(shí),git會(huì)提示我們,當(dāng)前沒(méi)有任何東西要提交,同時(shí)提示我們,可以創(chuàng)建或者復(fù)制文件后使用“git add”命令來(lái)跟蹤文件的變化。

五、現(xiàn)在讓我們來(lái)創(chuàng)建一個(gè)文件吧。我們創(chuàng)建一個(gè)叫“a.txt”的文本文件,并且內(nèi)容如下:



代碼如下:


yanyaozhen@macbookpro:~/Coding/Practice/StudyGit$ cat a.txt



aaa
這個(gè)時(shí)候,讓我們?cè)賮?lái)運(yùn)行下git status吧。運(yùn)行如下:



代碼如下:


yanyaozhen@macbookpro:~/Coding/Practice/StudyGit$ git status



On branch master

Initial commit

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    a.txt

nothing added to commit but untracked files present (use "git add" to track)
這時(shí)會(huì)提示我們有一個(gè)未追蹤的文件,叫a.txt。我們要把這個(gè)文件加入到版本控制中,于是,我們運(yùn)行如下命令:



代碼如下:


git add a.txt



這個(gè)命令表示把我們指定的a.txt加入到git控制之下。add命令可以沒(méi)有參數(shù)(在windows下可以沒(méi)有參數(shù),在mac下需要指定當(dāng)前目錄即“.”),如果沒(méi)有參數(shù),則表示把目錄下的所有文件都加入到git倉(cāng)庫(kù)中。這個(gè)時(shí)候,我們?cè)龠\(yùn)行下“git status”:



代碼如下:


yanyaozhen@macbookpro:~/Coding/Practice/StudyGit$ git status



On branch master

Initial commit

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

    new file:   a.txt
提示我們有改變需要被提交。這個(gè)時(shí)候,a.txt這個(gè)文件就存在于所謂的“暫存區(qū)”中,暫存區(qū)中的文件可以被真正提交到git倉(cāng)庫(kù)。有同學(xué)可能說(shuō),如果我不想提交這個(gè)文件了,那怎么把剛才的文件從暫存區(qū)移除呢?其實(shí)答案就在剛才的提示中:
use "git rm --cached ..." to unstage。
那么,我們運(yùn)行下這個(gè)命令:



代碼如下:


yanyaozhen@macbookpro:~/Coding/Practice/StudyGit$ git rm --cached a.txt



rm 'a.txt'
再運(yùn)行g(shù)it status時(shí)就可以發(fā)現(xiàn),又回到文件沒(méi)有被提交時(shí)的狀態(tài)了。

六、當(dāng)我們的文件已經(jīng)通過(guò)“git add”加入到暫存區(qū)后,就可以把文件真正提交到git倉(cāng)庫(kù)了。如下:



代碼如下:


yanyaozhen@macbookpro:~/Coding/Practice/StudyGit$ git commit -m "提交a.txt"



*** Please tell me who you are.

Run

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

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'yanyaozhen@macbookpro.(none)')
阿歐,報(bào)錯(cuò)了,查看給出的錯(cuò)誤原因,發(fā)現(xiàn)是因?yàn)闆](méi)有設(shè)置email和用戶名,所以git不讓我提交。git為什么要強(qiáng)制要求設(shè)置了這兩個(gè)配置才能提交呢?因?yàn)間it必須得知道是誰(shuí)提交的,如果連誰(shuí)提交的都不知道,那還怎么做版本管理啊,是不。所以我們根據(jù)提示設(shè)置下:



代碼如下:


yanyaozhen@macbookpro:~/Coding/Practice/StudyGit$ git config --global user.email "youremail@example.com"
yanyaozhen@macbookpro:~/Coding/Practice/StudyGit$ git config --global user.name "yourusername"
yanyaozhen@macbookpro:~/Coding/Practice/StudyGit$



好了,我們?cè)偬峤幌拢?/p>

代碼如下:


yanyaozhen@macbookpro:~/Coding/Practice/StudyGit$ git commit -m "提交a.txt"



[master (root-commit) dab07d0] 提交a.txt
 1 file changed, 1 insertion(+)
 create mode 100644 a.txt
發(fā)現(xiàn)已經(jīng)可以提交成功了,提示一個(gè)文件被修改(就是我們的a.txt),一行被插入(就是我們的一行“aaa”)。
我們?cè)龠\(yùn)行下git status:



代碼如下:


yanyaozhen@macbookpro:~/Coding/Practice/StudyGit$ git status



On branch master
nothing to commit, working directory clean
提示我們當(dāng)前沒(méi)有東西要提交,當(dāng)前工作目錄是干凈的,因?yàn)槲覀兌继峤坏絞it了。
好了,到這步后,git就可以完全跟蹤已經(jīng)被提交的文件了,以后,這個(gè)文件的任何修改,它都可以記錄下來(lái)。比如某個(gè)人對(duì)項(xiàng)目私自修改了一些東西,項(xiàng)目管理者根據(jù)git的版本記錄是一定可以找到是誰(shuí)修改了哪些文件的。
現(xiàn)在我們就可以把文件提交到遠(yuǎn)程服務(wù)器了。

七、當(dāng)我們要提交git倉(cāng)庫(kù)中的內(nèi)容到遠(yuǎn)程服務(wù)器時(shí),我們必須得先成為遠(yuǎn)程服務(wù)器受信任的用戶才行(服務(wù)器當(dāng)然不允許所有人都可以推送內(nèi)容,那樣就亂套了)。這個(gè)時(shí)候,我們需要先在本地生成一個(gè)公鑰,然后把公鑰放到遠(yuǎn)程服務(wù)器的賬戶列表中。生成公鑰的命令如下:



代碼如下:


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



如果你是windows用戶,那么公鑰生成的目錄是C:\Users\用戶名.ssh下,里面有兩個(gè)文件 id_rsa 和 id_rsa.pub ,其中id_rsa.pub中的內(nèi)容就是我們需要的公鑰。如果你是Linux或者mac用戶,那么在用戶主目錄下也會(huì)有一個(gè).ssh目錄,里面放著的是私鑰和公鑰。假設(shè)我們現(xiàn)在要把github作為遠(yuǎn)程推送服務(wù)器地址,那么,我們首先把公鑰放在github的settings->SSH keys列表中(點(diǎn)擊新建一個(gè)ssh key,title隨意,把公鑰的全部?jī)?nèi)容復(fù)制進(jìn)行保存即可)。

八、現(xiàn)在我們可以給StudyGit項(xiàng)目在github上添加一個(gè)遠(yuǎn)程倉(cāng)庫(kù)了。在github上add new repository,名字我在這里也用StudyGit了(起其他名字也可以),建好后顯示如下:
如何實(shí)現(xiàn)Linux操作Git遠(yuǎn)程倉(cāng)庫(kù)與本地倉(cāng)庫(kù)同步

可以看到有一個(gè)ssh地址是git@github.com:onlyanyz/StudyGit.git,這個(gè)就是我們的遠(yuǎn)程git倉(cāng)庫(kù)地址了,一會(huì)我們就會(huì)把文件推送到這里。
接下來(lái),我們需要把本地git倉(cāng)庫(kù)關(guān)聯(lián)到遠(yuǎn)程git倉(cāng)庫(kù),操作如下:進(jìn)入本地StudyGit根目錄,執(zhí)行如下命令:



代碼如下:


git remote add origin git@github.com:onlyanyz/StudyGit.git



這個(gè)命令的意思是,我給遠(yuǎn)程倉(cāng)庫(kù)(就是git@github.com:onlyanyz/StudyGit.git)起了個(gè)別名,叫origin(其實(shí)叫別的名字也可以,你只要知道這是別名就行,以后就用別名來(lái)操作遠(yuǎn)程庫(kù))。操作后,我們可以使用“git remote”命令來(lái)查看當(dāng)前本地倉(cāng)庫(kù)關(guān)聯(lián)了哪些遠(yuǎn)程倉(cāng)庫(kù)(它會(huì)列出每個(gè)遠(yuǎn)程庫(kù)的簡(jiǎn)短名字。如果您之前會(huì)使用git clone命令的話,在克隆完某個(gè)項(xiàng)目后,至少可以看到一個(gè)名為 origin 的遠(yuǎn)程庫(kù),Git默認(rèn)使用這個(gè)名字來(lái)標(biāo)識(shí)你所克隆的原始倉(cāng)庫(kù))。

九、關(guān)聯(lián)了遠(yuǎn)程倉(cāng)庫(kù)之后,我們就可以推送了。將本地倉(cāng)庫(kù)push到遠(yuǎn)程倉(cāng)庫(kù)的命令如下:



代碼如下:


git push origin master



命令解釋如下:
git push的語(yǔ)法為:git push <遠(yuǎn)程主機(jī)名> <本地分支名>:<遠(yuǎn)程分支名>
該語(yǔ)法表示把本地分支名push到遠(yuǎn)程主機(jī)名的遠(yuǎn)程分支。我們可以看到剛才執(zhí)行的語(yǔ)句并沒(méi)有遠(yuǎn)程分支名(被省略了),如果省略遠(yuǎn)程分支名,則表示將本地分支推送到與之存在”追蹤關(guān)系”的遠(yuǎn)程分支(通常兩者同名),如果該遠(yuǎn)程分支不存在,則會(huì)被新建。所以剛才執(zhí)行的語(yǔ)句的意思是,把本地的master分支推送到遠(yuǎn)程主機(jī)的master分支。
關(guān)于git push命令以后還需要注意的地方:
a.如果省略本地分支名,則表示刪除指定的遠(yuǎn)程分支,因?yàn)檫@等同于推送一個(gè)空的本地分支到遠(yuǎn)程分支。例如:



代碼如下:


$ git push origin :master



該命令等同于如下指令:$ git push origin --delete master,表示刪除遠(yuǎn)程主機(jī)的master分支。
b.git push 有時(shí)候本地分支和遠(yuǎn)程分支名都可以省略,有時(shí)候連主機(jī)名也可以省略,這個(gè)現(xiàn)在就不細(xì)說(shuō)了。
c.如果當(dāng)前分支與多個(gè)主機(jī)存在追蹤關(guān)系,則可以使用-u選項(xiàng)指定一個(gè)默認(rèn)主機(jī),這樣后面就可以不加任何參數(shù)使用git push:



代碼如下:


$ git push -u origin master



好了,現(xiàn)在我們已經(jīng)把StudyGit目錄中的內(nèi)容都推送到遠(yuǎn)程了,現(xiàn)在運(yùn)行g(shù)it status看下:



代碼如下:


~/Coding/Practice/StudyGit$ git status



On branch master
nothing to commit, working directory clean
工作目錄還是干凈的,接下來(lái)您就可以繼續(xù)在本地進(jìn)行創(chuàng)建文件->提交到暫存區(qū)->提交到本地倉(cāng)庫(kù)->push到遠(yuǎn)程倉(cāng)庫(kù)的過(guò)程啦!

將遠(yuǎn)程倉(cāng)庫(kù)克隆到本地
下面我們來(lái)講一個(gè)新的玩法,就是先有遠(yuǎn)程倉(cāng)庫(kù),后有本地倉(cāng)庫(kù),即把遠(yuǎn)程倉(cāng)庫(kù)“克隆(clone)”到本地。
假設(shè)現(xiàn)在你的團(tuán)隊(duì)其他成員已經(jīng)在git上建好了倉(cāng)庫(kù),并且也push過(guò)代碼,這個(gè)遠(yuǎn)程git倉(cāng)庫(kù)還叫“StudyGit”,有兩個(gè)文件:a.txt和README.md,現(xiàn)在,您也要開始貢獻(xiàn)代碼了,那么,您首先需要把團(tuán)隊(duì)其他成員提交的所有東西都拉取到你的本地目錄,這個(gè)時(shí)候就會(huì)用到“clone”命令了:



代碼如下:


git clone git@github.com:onlyanyz/StudyGit.git



只要執(zhí)行這句指令,就可以把遠(yuǎn)程倉(cāng)庫(kù)的所有東西都拉取到本地工作目錄了,當(dāng)然生成的本地目錄名和遠(yuǎn)程倉(cāng)庫(kù)名字是一樣的。
如果您現(xiàn)在查看下當(dāng)前本地git倉(cāng)庫(kù)的狀態(tài),如下:



代碼如下:


yanyaozhen@macbookpro:~/Coding/StudyGit$ git status



On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
命令回顯表示,我的本地分支已經(jīng)更新為新的遠(yuǎn)程master分支了。此后,我們就可以按照“git快速入門之一”這篇文章所述進(jìn)行添加代碼并提交了。
現(xiàn)在,讓我們?cè)倏聪聞偛與lone到本地的git項(xiàng)目,現(xiàn)在有兩個(gè)文件,如下:



代碼如下:


yanyaozhen@macbookpro:~/Coding/StudyGit$ ll



total 16
-rw-r--r--  1 yanyaozhen  staff    21B 11 19 00:04 README.md
-rw-r--r--  1 yanyaozhen  staff     4B 11 19 00:04 a.txt
接下來(lái),假如A同學(xué)在github上的這個(gè)倉(cāng)庫(kù)中又新增了一個(gè)文件b.txt,那現(xiàn)在github遠(yuǎn)程倉(cāng)庫(kù)中就有三個(gè)文件(注意,現(xiàn)在本地倉(cāng)庫(kù)中的文件就已經(jīng)與遠(yuǎn)程倉(cāng)庫(kù)不同了)。
接下來(lái),我們?cè)诒镜乩^續(xù)我們的開發(fā)工作,假如新建了一個(gè)文件“c.txt”,現(xiàn)在,讓我們來(lái)把"c.txt"文件加入暫存區(qū),然后commit到本地倉(cāng)庫(kù),這時(shí),我們想把剛才的工作成果再push到遠(yuǎn)程,執(zhí)行如下:



代碼如下:


yanyaozhen@macbookpro:~/Coding/StudyGit$ git push origin master



To git@github.com:onlyanyz/StudyGit.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'git@github.com:onlyanyz/StudyGit.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
阿歐,報(bào)錯(cuò)了,懂點(diǎn)英文的同學(xué)可以從提示信息看出問(wèn)題所在,因?yàn)槲覀兊倪h(yuǎn)程已經(jīng)有更新了,我們?cè)趐ush到遠(yuǎn)程的時(shí)候,必須先把遠(yuǎn)程的改動(dòng)拉到本地合并起來(lái),才能再次提交我的修改。所以,以下的命令就出場(chǎng)了:



代碼如下:


$ git fetch origin master



該指令意思是從遠(yuǎn)程origin倉(cāng)庫(kù)的master主分支更新新的版本到origin/master分支上。
然后我們比對(duì)下當(dāng)前本地master分支和origin/master分支的區(qū)別:



代碼如下:


$ git log -p master..origin/master



執(zhí)行的回顯結(jié)果會(huì)詳細(xì)列出這兩個(gè)分支的差異。
然后,我們需要把origin/master分支上的內(nèi)容合并到本地master分支:



代碼如下:


git merge origin/master



執(zhí)行該指令后,可能會(huì)要求輸入合并的理由,填寫后,我們就合并成功了。這個(gè)時(shí)候,我們就可以再次push了:



代碼如下:


yanyaozhen@macbookpro:~/Coding/StudyGit$ git push origin master



Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 543 bytes | 0 bytes/s, done.
Total 5 (delta 2), reused 0 (delta 0)
To git@github.com:onlyanyz/StudyGit.git
   6b3662f..6036a05  master -> master
表示push成功,現(xiàn)在你可以去github上看到我們?cè)诒镜匦陆ǖ腷.txt文件啦!



到此,關(guān)于“如何實(shí)現(xiàn)Linux操作Git遠(yuǎn)程倉(cāng)庫(kù)與本地倉(cāng)庫(kù)同步”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

網(wǎng)頁(yè)題目:如何實(shí)現(xiàn)Linux操作Git遠(yuǎn)程倉(cāng)庫(kù)與本地倉(cāng)庫(kù)同步-創(chuàng)新互聯(lián)
文章鏈接:http://aaarwkj.com/article24/ccodce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、Google定制開發(fā)、網(wǎng)站策劃、App設(shè)計(jì)網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
亚洲中文字幕乱码丝袜在线精品| 国产熟乱老女人露脸视频| 黄色av免费播放网站| 国产毛片一区二区三区二区| 青娱乐青青草91在线| 人妻少妇久久中文字幕久久| 91口爆吞精国产对白| 91九色在线视频观看| av在线中文字幕乱码| 国产成人综合亚洲一区| 91色老久久精品偷偷鲁无毒| 一起草草视频在线观看| 日本黄色高清视频一区| av中文字幕一二三区| 色婷婷狠狠久久综合中文一本| 国产精品色网在线播放| 日韩欧美国产精品加勒比| 精品人妻一区二区三区不卡| 日韩欧美一区二区麻豆| 精品一区二区三区女同| 抱着操才爽的免费视频观看| 中文字幕一区二区三区网站| 久久精品性少妇一区二区三区| 成人欧美一区二区三区av| 青青草最新网址在线观看视频| 国产亚洲一区二区视频| 亚洲国产av永久精品成人| 欧美黑人少妇高潮喷水| 色婷婷亚洲婷婷亚洲最大| 欧美色视频综合在线观看| 我想看日韩一级黄色片| 日本精品a秘在线观看| 毛片成人18毛片免费看| 加勒比人妻一区二区三区| 日韩高清午夜片在线观看| 九九99九九99九九精品在线观看| 国产在线精品成人欧美| 中文字幕国产精品综合| 亚洲国产视频不卡一区| 国产av一级二级三级最新精品| 东京成人热av男人的天堂|