欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          Git命令配置學(xué)習(xí)筆記

          Git 筆記

          • Git是分布式版本控制系統(tǒng)
          • 集中式VS分布式:
            1. 集中式版本控制系統(tǒng),版本庫集中存放在中央服務(wù)器,必須要聯(lián)網(wǎng)才能工作,沒有歷史版本庫。
            2. 分布式版本控制系統(tǒng),版本控制系統(tǒng)沒有“中央服務(wù)器”,每個人電腦上都是一個完整的版本庫。
            3. 分布式系統(tǒng)優(yōu)勢:安全性更高,不需要聯(lián)網(wǎng),如果中央服務(wù)器故障,任何其他一個開發(fā)人員的本地都有最新的帶有歷史記錄的版本庫。
          • 主要區(qū)別在于歷史版本庫的存放,集中式系統(tǒng)歷史版本只存在于中央服務(wù)器,而分布式控制系統(tǒng)中每個本地庫都有歷史記錄存放。

          Git命令

          Git配置

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

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

          創(chuàng)建版本庫

          在當(dāng)前目錄創(chuàng)建git倉庫

          $ git init 

          把文件添加到倉庫

          $ git add <file> $ git commit

          git add可以反復(fù)多次使用,添加多個文件,git commit可以一次提交很多文件,在git commit命令后添加(-m ‘····’)方便從歷史記錄里找到修改記錄。

          掌握工作區(qū)的狀態(tài)

          $ git status 

          查看文件修改內(nèi)容

          $ git diff

          版本回退

          $ git reset -- hard HEAD^

          HEAD指向的版本是當(dāng)前版本,回到上一版本使用以上命令,如果回退上兩個版本使用HEAD^^,如果回退版本數(shù)較大(如往上50個版本),使用HEAD~50。

          回退指定版本

          $ git reset --hard commit_id

          commit_id是指定版本號,是由SHA1計(jì)算出來的數(shù)字

          查看提交歷史

          $ git log 

          查看命令歷史

          $ git reflog

          工作區(qū)、暫存區(qū)和版本庫

          git與其他版本控制系統(tǒng)的不同之處就是有暫存區(qū)的概念,工作區(qū)就是電腦中能看到的目錄,工作區(qū)有一個隱藏目錄[.git],這是git的版本庫。版本庫里有許多東西,最重要的是稱為stage的暫存區(qū)。

          Git命令配置學(xué)習(xí)筆記

          將文件往版本庫里添加時是分兩步執(zhí)行的:

          1. 第一步是用git add把文件添加進(jìn)去,實(shí)際上就是把文件修改添加到暫存區(qū)。
          2. 第二步是用git commit提交修改,實(shí)際上就是把暫存區(qū)的所有內(nèi)容提交到當(dāng)前分支。

          Git是如何跟蹤修改的,每次修改,如果不用git add到暫存區(qū),那就不會加入到commit中。

          撤銷修改

          丟棄工作區(qū)的修改

          $ git checkout -- <file>

          該命令是將文件在工作去的修改全部撤銷,這里有兩種情況:

          • 一種是file自修改后還沒有被放到暫存區(qū),現(xiàn)在,撤銷修改就回到和版本庫一模一樣的狀態(tài);
          • 一種是file已經(jīng)添加到暫存區(qū)后,又作了修改,現(xiàn)在,撤銷修改就回到添加到暫存區(qū)后的狀態(tài)。

          總之,就是讓這個文件回到最近一次git commit或git add時的狀態(tài)。

          丟棄暫存區(qū)的修改

          改亂了工作區(qū)某個文件的內(nèi)容同時還添加到了暫存區(qū),想丟棄修改時,先使用命令git reset HEAD <file>,之后按撤銷工作區(qū)修改進(jìn)行操作。

          進(jìn)行了commit命令提交的修改

          已經(jīng)提交了不合適的修改到版本庫時,想要撤銷修改,使用版本回退命令,前提是沒有推送到遠(yuǎn)程庫.

          刪除文件

          $ git rm <file>

          當(dāng)你要刪除文件text.txt的時候,可以采用命令:rm test.txt
          這個時候有兩種情況:

          第一種情況:的確要把test.txt刪掉,那么可以執(zhí)行
          $ git rm test.txt
          $ git commit -m "remove test.txt"
          此時文件被刪除,且刪除記錄上傳本地庫。

          第二種情況:誤刪文件,想恢復(fù),這時候還沒有commit -m "remove test.txt",執(zhí)行git checkout test.txt將文件恢復(fù)。

          如果執(zhí)行完git commit -m "remove test.txt"后就不能用checkout恢復(fù)了,得用git reset --hard HEAD^,再從版本庫寫回到工作區(qū)。
          git rm用于刪除一個文件。如果一個文件已經(jīng)被提交到版本庫,那么你永遠(yuǎn)不用擔(dān)心誤刪,但是要小心,你只能恢復(fù)文件到最新版本,你會丟失最近一次提交后你修改的內(nèi)容。

          遠(yuǎn)程倉庫

          創(chuàng)建SSH Key

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

          關(guān)聯(lián)遠(yuǎn)程倉庫

          $ git remote add origin https://github.com/username/repositoryname.git

          推送到遠(yuǎn)程倉庫

          $ git push -u origin master

          -u 表示第一次推送master分支的所有內(nèi)容,此后,每次本地提交后,只要有必要,就可以使用命令$ git push origin master推送最新修改。

          從遠(yuǎn)程克隆

          $ git clone https://github.com/usern/repositoryname.git

          注意:當(dāng)你不能使用 git@github.com 命令來進(jìn)行推送和克隆,是因?yàn)闆]有安裝密鑰。

          • 添加私秘鑰到$ ssh-add ~/.ssh/id_rsa
          • 如果添加失敗可以先執(zhí)行命令$ eval ssh-agent是~鍵上的那個符號,然后再次添加私秘鑰。
          • $ ssh -T git@github.com判斷是否綁定成功。如果返回successfully表示成功。

          分支管理

          查看分支

          $ git branch

          創(chuàng)建分支

          $ git branch <name>

          切換分支

          $ git checkout <name>

          創(chuàng)建+切換分支

          $ git checkout -b <name>

          合并某分支到當(dāng)前name分支

          $ git merge <name>

          刪除分支

          $ git branch -d <name>

          強(qiáng)行刪除分支

          $ git branch -D <name>

          如果要丟棄一個沒有被合并過的分支,可以通過以上命令來實(shí)現(xiàn)。

          查看分支合并圖

          $ git log --graph

          當(dāng)Git無法自動合并分支時,就必須首先解決沖突。解決沖突后,再提交,合并完成。
          git log --graph命令可以看到分支合并圖。

          普通模式合并分支

          $ git merge --no-ff -m "description" <branchname>

          通常進(jìn)行分支合并時,git會使用Fast forward模式,刪除分支后,分支信息會丟失,可以使用--on-ff參數(shù),禁用Fast forward,需要時加上一個-m參數(shù)把commit描述寫進(jìn)去。這樣進(jìn)行合并后的歷史有分支,能看出來曾經(jīng)做過合并。

          保存工作現(xiàn)場

          $ git stash  

          查看工作現(xiàn)場

          $ git stash list

          恢復(fù)工作現(xiàn)場

          $ git stash pop

          在新建分支中修改bug時的推薦操作

          首先理清兩個概念:
          未被追蹤的文件:指的是新建的文件或文件夾且還沒加入到暫存區(qū)(新建的還沒有被git add)
          未加入到暫存區(qū)的文件:指的是已經(jīng)被追蹤過,但是沒有加入到暫存區(qū)(已經(jīng)執(zhí)行過git add/commit的但是這次修改后還沒有g(shù)it add)
          舉例:
          readme.md 已經(jīng)被git add/git commit過,但是呢,我這次只是修改了,而且沒有修改完,不能commit;
          test 新建的文件夾,沒有被git add/git commit;
          有個bug需要處理,這時候我需要切換分支,去處理bug
          正確的步驟:
          git add test(讓git去追蹤這個新文件)
          git stash保留現(xiàn)場
          如果不執(zhí)行這兩個命令,那么在修改BUG完成之后git status,就會發(fā)現(xiàn)readme.md沒有添加到暫存區(qū),同時又多了個test文件,
          但是自己的readme.md沒有完成,萬萬不可以提交,這樣導(dǎo)致bug的修改代碼也提交不了。
          所以需要git stash,這樣在提交修改bug代碼的時候 ,就不會看見readme.md 和 test??梢园残奶峤恍薷腷ug的代碼。

          查看遠(yuǎn)程庫信息

          $ git remote -v;

          本地新建的分支如果不推送到遠(yuǎn)程,對其他人就是不可見的;

          從本地推送分支

          $ git push origin branch-name

          如果推送失敗,先用git pull抓取遠(yuǎn)程的新提交;

          在本地創(chuàng)建和遠(yuǎn)程分支對應(yīng)的分支

          $ git checkout -b branch-name origin/branch-name

          本地和遠(yuǎn)程分支的名稱最好一致;

          建立本地分支和遠(yuǎn)程分支的關(guān)聯(lián)

          $ git branch --set-upstream branch-name origin/branch-name

          從遠(yuǎn)程抓取分支

          $ git pull

          如果有沖突,要先處理沖突。

          標(biāo)簽

          git標(biāo)簽是版本庫的快照,實(shí)際就是某個commit的指針,如果要找到某次版本的commit號,數(shù)字復(fù)雜不好找,使用tag取一個易于記住和理解的名字就方便許多,它跟某個commit綁在一起。(類似于域名和IP地址的關(guān)系?)

          新建標(biāo)簽

          $ git tag<tagname> 

          默認(rèn)為HEAD,也可以指定一個commit id。

          查看標(biāo)簽信息

          $ git show <tagname>

          創(chuàng)建帶有說明的標(biāo)簽

          $git tag -a <tagname> -m <description> <branchname> or commit_id

          用-a指定標(biāo)簽名,-m指定說明文字

          查看所有標(biāo)簽

          $ git tag

          推送某個標(biāo)簽到遠(yuǎn)程

          $ git push origin <tagname>

          一次性推送全部尚未推送到遠(yuǎn)程的本地標(biāo)簽

          $ git push origin --tags

          刪除一個本地標(biāo)簽

          $ git tag -d <tagname>

          刪除一個遠(yuǎn)程標(biāo)簽

          $ git push origin :refs/tags/<tagname>
          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號