国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Git常用操作命令及舉例說明

2019-11-10 18:31:32
字體:
供稿:網(wǎng)友

[ [ [轉(zhuǎn)載] http://blog.csdn.net/techbirds_bao/article/details/9179853

Git 倉庫就是那個(gè).git 目錄,其中存放的是我們所提交的文檔索引內(nèi)容,Git 可基于文檔索引內(nèi)容對其所管理的文檔進(jìn)行內(nèi)容追蹤,從而實(shí)現(xiàn)文檔的版本控制。.git目錄位于工作目錄內(nèi)。 對于任何一個(gè)文件,在 Git 內(nèi)都只有三種狀態(tài):已修改(modified),已暫存(staged)和已提交(committed)。

Git的三種狀態(tài):

1.Change(Unstaged):你改動了一個(gè),沒有調(diào)用任何git命令前,就是這種狀態(tài)。2.Staged暫存區(qū):調(diào)用git add或者git commit -a之后,進(jìn)入Staged狀態(tài),表示申明要變動了。3.Committed:Commit,生成新的版本commit號,進(jìn)入此狀態(tài)。

常見狀態(tài)提示:

1.nothing to commit (working directory clean): 所有已跟蹤文件在上次提交后都未被更改過2.Untracked files: 未跟蹤文件3.Changes to be committed: 已跟蹤文件(在添加add命令之后的文件與修改后又添加add命令之后的文件)4.Changes not staged for commit:已跟蹤文件的內(nèi)容發(fā)生了變化,但還沒有放到暫存區(qū),這樣狀態(tài)的文件即使Commit上去也只是Commit暫存區(qū)的版本而不是改文件最新版本

若編輯修改已暫存的文件,后運(yùn)行g(shù)it status會出現(xiàn)暫存前后的兩個(gè)版本(Change和Staged),若此時(shí)Commit,則只會同步已暫存(Staged)的那個(gè)版本,而不會同步暫存后修改的部分。若要同步暫存后修改的部分,應(yīng)重新add該文件。

提交時(shí)記錄的是放在暫存區(qū)域的快照,任何還未暫存的仍然保持已修改狀態(tài),可以在下次提交時(shí)納入版本管理。

在 Git 中,HEAD是一個(gè)指向你正在工作中的本地分支的指針(將 HEAD 想象為當(dāng)前分支的別名。)

任何包含未解決沖突的文件都會以未合并(unmerged)的狀態(tài)列出。可以使用git mergetool使用圖形工具引導(dǎo)合并解決沖突。

1、 遠(yuǎn)程倉庫相關(guān)命令

檢出倉庫:$ git clone git://github.com/jquery/jquery.git查看遠(yuǎn)程倉庫:$ git remote -v添加遠(yuǎn)程倉庫:$ git remote add [name] [url]刪除遠(yuǎn)程倉庫:$ git remote rm [name]修改遠(yuǎn)程倉庫:$ git remote set-url --push[name][newUrl]拉取遠(yuǎn)程倉庫:$ git pull [remoteName] [localBranchName]推送遠(yuǎn)程倉庫:$ git push [remoteName] [localBranchName]

[舉例] 1)、 為PD-based-on-pc項(xiàng)目新建一個(gè)遠(yuǎn)程origin倉庫

$ git remote add origin git@git.coding.net:Yunpentium/PD-based-on-pc.git

2)、 把本地master分支的內(nèi)容推送到遠(yuǎn)程的origin倉庫

$ git push origin master

2、分支(branch)操作相關(guān)命令

查看本地分支:$ git branch查看遠(yuǎn)程分支:$ git branch -r創(chuàng)建本地分支:$ git branch [name] //注意新分支創(chuàng)建后不會自動切換為當(dāng)前分支切換分支:$ git checkout [name]切換分支(到下一個(gè)):$ git checkout -創(chuàng)建新分支并立即切換到新分支:$ git checkout -b [name]刪除分支:$ git branch -d [name] ---- -d選項(xiàng)只能刪除已經(jīng)參與了合并的分支,對于未有合并的分支是無法刪除的。如果想強(qiáng)制刪除一個(gè)分支,可以使用-D選項(xiàng)合并分支:$ git merge [name] ----將名稱為[name]的分支與當(dāng)前分支合并本地分支push到遠(yuǎn)程分支(簡寫):$ git push origin [name] //本地和遠(yuǎn)程分支名稱都是name本地分支push到遠(yuǎn)程分支(全寫):git push origin [localBranch]:[remoteBranch]//上邊兩個(gè)命令會自動創(chuàng)建遠(yuǎn)程分支刪除遠(yuǎn)程分支:$ git push origin :heads/[name]

[舉例] 我從本地master分支創(chuàng)建了一個(gè)本地issue5560分支,做了一些修改后,使用git push origin master提交,但是顯示的結(jié)果卻是’Everything up-to-date’。發(fā)生問題的原因是git push origin master中,本地master分支默認(rèn)指向了遠(yuǎn)程的origin/master 分支,所以這里要使用git push origin issue5560:master 就可以指明是把本地的issue5560推送到遠(yuǎn)程的origin/master分支了。

如果想把本地的某個(gè)分支test提交到遠(yuǎn)程倉庫,并作為遠(yuǎn)程倉庫的master分支,或者作為另外一個(gè)名叫test的分支,那么可以這么做。

$ git push origin test:master // 提交本地test分支作為遠(yuǎn)程的master分支 $ git push origin test:test // 提交本地test分支作為遠(yuǎn)程的test分支

如果想刪除遠(yuǎn)程的分支呢?類似于上面,如果:左邊的分支為空,那么將刪除:右邊的遠(yuǎn)程的分支。

$ git push origin :test // 剛提交到遠(yuǎn)程的test將被刪除,但是本地還會保存的,不用擔(dān)心

3、版本(tag)操作相關(guān)命令

Git 使用的標(biāo)簽有兩種類型:輕量級的(lightweight)和含附注的(annotated)

查看版本:$ git tag創(chuàng)建版本:$ git tag [name]刪除版本:$ git tag -d [name]查看遠(yuǎn)程版本:$ git tag -r創(chuàng)建遠(yuǎn)程版本(本地版本push到遠(yuǎn)程):$ git push origin [name]刪除遠(yuǎn)程版本:$ git push origin :refs/tags/[name]

[舉例]

$git tag -a v1.4 -m 'my version 1.4' //新建一個(gè)含附注(-a)的標(biāo)簽$git tag v1.5#新建一個(gè)輕量級標(biāo)簽$git show v1.1 #查看相應(yīng)標(biāo)簽的版本信息

4、子模塊(submodule)相關(guān)操作命令

添加子模塊:$ git submodule add [url] [path]

如:$ git submodule add git://github.com/soberh/ui-libs.git src/main/webapp/ui-libs

初始化子模塊:$ git submodule init ----只在首次檢出倉庫時(shí)運(yùn)行一次就行更新子模塊:$ git submodule update ----每次更新或切換分支后都需要運(yùn)行一下刪除子模塊:(分4步走哦)1)$ git rm --cached [path] 2) 編輯“.gitmodules”文件,將子模塊的相關(guān)配置節(jié)點(diǎn)刪除掉 3) 編輯“.git/config”文件,將子模塊的相關(guān)配置節(jié)點(diǎn)刪除掉 4) 手動刪除子模塊殘留的目錄 5)忽略一些文件、文件夾不提交在倉庫根目錄下創(chuàng)建名稱為“.gitignore”的文件,寫入不需要的文件夾名或文件,每個(gè)元素占一行即可,如targetbin*.db

5、初始化操作

$mkdir folderName #建立名為folderName的文件夾$touch README #創(chuàng)建一個(gè)空文件$git init #初始化git倉庫,其實(shí)是增加了.git隱藏目錄,把本地目錄變成Git可以管理的倉庫$git clone [URL] //復(fù)制遠(yuǎn)程分支到本地目錄。還有其它參數(shù)選項(xiàng),下文第8節(jié)有講到$git status #查看狀態(tài)(一般在commit之前查看當(dāng)前修改和倉庫里面差別多少;git status -s)

6、Add操作(進(jìn)入Staged狀態(tài))

運(yùn)行了 git add 之后又修改了本地文件,需要重新運(yùn)行 git add 把最新版本重新暫存起來。

add添加到暫存區(qū)的文件,git才會監(jiān)控它的變化。在Unstaged狀態(tài)的文件變化并不會在命令行中體現(xiàn)出來。

$ git add octocat.txt //把文件從change->staged狀態(tài)(修改現(xiàn)有文件也要git add來修改狀態(tài))$ git add /home/root/aaa/*#(當(dāng)前目錄下所有的更新)$ git reset HEAD gitTest.txt #取消已a(bǔ)dd到暫存區(qū)的文件(與add執(zhí)行相反的操作)

7、Commit操作

$git commit -m "Add cute octocat story" //提交到倉庫,必須要一個(gè)message說明,–m返回提交時(shí)的信息(如果不加-m,則會調(diào)用默認(rèn)編輯器供填寫提交信息說明)$git commit -a -m 'message' //(加上-a參數(shù),把所有已經(jīng)跟蹤過的文件一次性暫存起來一起提交,這樣不用先git add再git commit,跳過git add步驟)$git commit -m 'initial commit'$git add forgotten_file//上面的三條命令最終只是產(chǎn)生一個(gè)提交,第二個(gè)提交命令修正了第一個(gè)的提交內(nèi)容.如果提交時(shí)忘了暫存某些修改,可以先補(bǔ)上暫存操作,然后再運(yùn)行 --amend 提交

8、git clone 命令

usage: git clone [options] [–] [

]

-v, --verbose be more verbose-q, --quiet be more quiet--PRogress force progress reporting-n, --no-checkout don't create a checkout--bare create a bare repository--mirror create a mirror repository (implies bare)-l, --local to clone from a local repository--no-hardlinks don't use local hardlinks, always copy-s, --shared setup as shared repository--recursive initialize submodules in the clone--recurse-submodules initialize submodules in the clone--template <template-directory> directory from which templates will be used--reference <repo> reference repository-o, --origin <name> use <name> instead of 'origin' to track upstream-b, --branch <branch> checkout <branch> instead of the remote's HEAD-u, --upload-pack <path> path to git-upload-pack on the remote--depth <depth> create a shallow clone of that depth--separate-git-dir <gitdir> separate git dir from working tree-c, --config <key=value> set config inside the new repository

參數(shù)挺多,但常用的就幾個(gè):

1)、最簡單直接的命令

git clone xxx.git

2)、 如果想clone到指定目錄

git clone xxx.git "指定目錄"

3)、 clone時(shí)創(chuàng)建新的分支替代默認(rèn)Origin HEAD(master)

git clone -b [new_branch_name] xxx.git

4)、 clone 遠(yuǎn)程分支

  git clone 命令默認(rèn)的只會建立master分支,如果你想clone指定的某一遠(yuǎn)程分支(如:dev)的話,可以如下:

 A. 查看所有分支(包括隱藏的) git branch -a 顯示所有分支,如:    

master remotes/origin/HEAD -> origin/master remotes/origin/dev remotes/origin/master

 B. 在本地新建同名的(“dev”)分支,并切換到該分支

git checkout -t origin/dev 該命令等同于:git checkout -b dev origin/dev

9、查看差異

如果已暫存了所有修改過的文件,后運(yùn)行g(shù)it diff會什么都沒有(因?yàn)樵撁铒@示的是當(dāng)前文件與暫存文件之間的差異)

$git diff//查看文件被修改之后還沒有暫存起來的變化內(nèi)容,顯示的是與上次暫存文件的差異$git diff test //顯示當(dāng)前目錄和另一個(gè)叫'test'分支的差別$git diff --cached //查看已經(jīng)暫存起來的文件和上次提交時(shí)的快照之間的差異$git diff --staged //同上
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 安吉县| 平阴县| 响水县| 阜新市| 丽水市| 宁河县| 肥东县| 托克托县| 阿鲁科尔沁旗| 界首市| 肇州县| 壤塘县| 灵宝市| 磐安县| 平乡县| 得荣县| 射阳县| 逊克县| 隆昌县| 凤阳县| 普兰店市| 通州区| 兴宁市| 周宁县| 和顺县| 启东市| 揭阳市| 应用必备| 会宁县| 汨罗市| 陇西县| 宜宾市| 渝北区| 中山市| 兴海县| 宝丰县| 哈尔滨市| 唐山市| 永城市| 澄城县| 宽城|