<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 查看遠程數據 在我們新建了與某個遠程倉庫的連接之后,它到底改變了什么?現在讓我們來看看分支列表: ``` $ git branch -va contact-form 56eddd1 Add new contact form page * master 56eddd1 Add new contact form page remotes/origin/HEAD -> origin/master remotes/origin/master 2b504be Change headlines for about and imprint ``` 顯然并沒有太大的變化,始終是我們那兩個本地分支(“master” 和 “contact-form”)以及兩個在 “origin” 上的遠程分支(“remotes/origin/HEAD” 和 “remotes/origin/master”)。為什么我們沒有看到那個新的遠程鏈接 “crash-course-remote” 呢?因為通過命令 “git remote add”,我們僅僅建立了一種關系,還沒有進行任何數據交換。 ##### 概念 #### 遠程數據是一個快照(Snapshot) Git 會在你的本地倉庫中保存遠程數據的信息(例如分支,提交等等)。但是它并不是 “實時地” 連接到你的遠程倉庫上的。例如,其他團隊成員在這個遠程倉庫中所提交的新改動或是發布的分支,是不能自動地與你分享的,因為你必須**明確地**告訴 Git 去升級你的本地倉庫! 關于遠程的分支,遠程的提交等等信息只會按照你的要求更新到最新的一個快照。Git 不會在后臺 “自動” 升級這些信息。 要更新有關遠程的信息,你必須明確地請求這個數據。在這里可以使用最為常用的,“抓取(Fetch)” 操作來完成: ``` $ git fetch crash-course-remote From https://github.com/gittower/git-crash-course-remote * [new branch] faq-content -> crash-course-remote/faq-content * [new branch] master -> crash-course-remote/master ``` “抓取” 操作不會改動你任何的本地分支或是在你工作副本中的文件。這個操作僅僅為你從一個特定遠程倉庫下載你所需要的數據,并設置為可見。你可以在之后決定是否需要整合這些新的改動本地項目中來。 在我們完成了關于 “crash-course-remote” 升級后,讓我們一起來看一下現在發生了什么變化: ``` $ git branch -va contact-form 56eddd1 Add new contact form page * master 56eddd1 Add new contact form page remotes/crash-course-remote/faq-content e29fb3f Add FAQ questions remotes/crash-course-remote/master 2b504be Change headlines f... remotes/origin/HEAD -> origin/master remotes/origin/master 2b504be Change headlines for about and imprint ``` 很好,我們看到了這個遠程分支的 “crash-course-remote” 的信息了。 現在準備開始在分支 “faq-content” 上工作吧!但是現在它只是一個遠程分支的指針。為了能夠真正地在這個分支上工作,并且切換當前工作副本(working copy)的內容,我們需要創建一個基于這個遠程的本地分支。執行 “git checkout” 命令來切換到這個遠程分支: ``` $ git checkout --track crash-course-remote/faq-content Branch faq-content set up to track remote branch faq-content from crash-course-remote. Switched to a new branch 'faq-content' $ git branch -va contact-form 56eddd1 Add new contact form page * faq-content e29fb3f Add FAQ questions master 56eddd1 Add new contact form page remotes/crash-course-remote/faq-content e29fb3f Add FAQ questions remotes/crash-course-remote/master 2b504be Change headlines f... remotes/origin/HEAD -> origin/master remotes/origin/master 2b504be Change headlines for about and imprint ``` 這個命令完成了一系列的操作: * (a) 它創建了一個同名的本地分支(“faq-content”)。 * (b) 它簽出(check out)了這個新建的的分支,把它設置成當前的本地 HEAD ,然后更新了你的工作副本,并且關聯到分支文件的最新版本上去。 * (c) 由于我們使用了 “--track” 參數,它會在新的本地分支和它所位于的遠程分支之間創建一個跟蹤聯系 “tracking relationship”。 #### 跟蹤分支 一般來說,分支之間并無任何關系。然而我們可以定義一個本地分支去 “跟蹤 (track)” 一個遠程分支。這樣 Git 就會通知你,如果那個被跟蹤的遠程分支發生了一些新的提交,而它們并不存在于這個關聯的本地分支中時: * 如果在你的本地分支上提交了一些改動,而且你也并沒有發布它和推送到遠程倉庫中。相對于這些提交來說你的本地分支就 “**領先(ahead)**” 于那些它所對應的遠程分支。 * 如果團隊的其他開發人員提交并且發布了一些改動到遠程倉庫中,這時遠程倉庫就擁有了那些你還沒有下載到本地倉庫的提交。你的本地倉庫就 “**落后(behind)**” 于它所關聯的遠程倉庫。 ![tracking-ahead-behind](https://box.kancloud.cn/2016-05-04_572967dd8b709.gif) 如果分支間存在 “跟蹤” 聯系,當你使用 “git status” 命令時,Git 顯示出所有關聯分支上的差異: ``` $ git status # On branch dev # Your branch and 'origin/dev' have diverged, # and have 1 and 2 different commits each, respectively. # nothing to commit (working directory clean) ``` 當在一個已存在的遠程分支的基礎上來建立本地分支時,創建這個 “跟蹤” 聯系是很簡單的,可以使用 “git checkout” 命令加 “--track” 參數來完成。 在切換到那個新創建的本地分支 “faq-content” 后, 我們已經自動擁有了這個 “跟蹤” 聯系。來讓我們對這個工作副本中的文件 “faq.html” 進行一些修改吧!(如何更改這個文件就不詳細介紹了,發揮你的想象力吧): ``` $ git status # On branch faq-content # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working # directory) # # modified: faq.html # no changes added to commit (use "git add" and/or "git commit -a") $ git add faq.html $ git commit -m "Add new question" [faq-content 814927a] Add new question 1 file changed, 1 insertion(+) ``` 現在,是時候把這些新的改動共享給其他開發人員了: ``` $ git push ``` ##### 注釋 在你的本地計算機上,這個 “git push” 命令將會被遠程倉庫**拒絕**掉,因為你現在還沒有獲得這個遠程倉庫的修改權限。如果你想要繼續的嘗試這個操作,我建議你建立一個自己的遠程倉庫,例如:[GitHub](http://www.github.com) 或者 [Beanstalk](http://beanstalkapp.com/pricing?ad=tower)。 “git push” 命令將會把當前 HEAD 分支上所有新的提交上傳到它所關聯的遠程分支上去。 ##### 概念 #### 回顧 “跟蹤” 聯系 “git push” 命令默認地要求我們為它提供兩個信息: * (a) 你想要推送到哪一個遠程倉庫上去? * (b) 你想要推送到那個遠程倉庫上的哪一個分支上去? 這個完整的命令應該是這樣的: `$ git push crash-course-remote faq-content` 我們已經設置了 “跟蹤” 聯系,也就是說我們已經為那個本地分支定義了一個 “ 遠程對應的(remote counterpart)” 分支。在我們使用 “git push” and “git pull” 命令時,我們不需要特別地給出那些參數, Git 會自動地使用這些已經定義好的 “跟蹤” 信息。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看