2016-09-13 83 views
0

我的git回購是一個有點古怪的地方,現在,所以讓我解釋我是如何來到這裏...獲取本地主跟蹤起源主

  1. cd /var
  2. git clone https://github.com/..... www
  3. cd www
  4. 實現我想把網站WWW
  5. mkdir my-site
  6. 的子目錄
  7. cd my-site

現在,當我運行git status,它聲稱每一個文件已被刪除,並且該my-site文件夾沒有被跟蹤。類是有道理的:我搬到每一個文件

要嘗試並糾正這一點,我做了以下內容:

  1. git init - 創建「我的站點」
  2. git remote add origin https://github.com/.....一個新的回購協議 - - 使這個回購一個我出身的「克隆」
  3. git fetch --all - 確保我知道最近提交
  4. git branch -u origin/master master - 告訴我當地主跟蹤起源掌握

當我這樣做,我得到了以下錯誤:

fatal: branch 'master' does not exist 

運行git status給了我下面的:

On branch master 

Initial commit 

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

     ... 

nothing added to commit but untracked files present (use "git add" to track) 

運行git branch -a給我:

remotes/origin/master 

所以我知道我是在當地的主人,我知道一個遠程主人存在,但我似乎無法將兩者聯繫在一起。

回答

2

您在my-site內初始化的回購沒有任何提交,這是造成git branch -u origin/master master命令中的呃逆的原因。您可以在my-site中運行git reset origin/master,之後git branch -u origin/master將按預期設置上游。

你也可以吹走www的所有內容,只需要將存儲庫克隆到www/my-site,這看起來不那麼費勁!

+0

'git reset'會修改任何文件,還是隻更新reflog? – stevendesu

+0

沒有選項的'git reset'相當於'git reset --mixed',它不會修改工作樹。有關其他選項的信息,請參閱[git-reset文檔](https://git-scm.com/docs/git-reset)。 –

0

可能有點長篇大論,而是:

git checkout -b temp-branch 
git branch -D master 

你可能想在這裏提交文件到臨時分支或藏匿他們

git checkout origin/master --track 
git merge temp-branch 

一般看家(不是必要的)

git branch -D temp-branch 

這有點不好意思,但應該做的工作