git 筆記: 如何將現有的 Tree 推到 remote

我本來在開發 AMP 的程式, 所以從 source code clone 了一個新的開發目錄, 稱 A, 再從 A clone 一個新的開發目錄, 稱 B.
這時在 B 的目錄下, 沒有辦法直接 push 回 A , 因為 A 內有 source code , 所以只好再開一個新的空 git, 往上推.

假設主要的 tracking branch name 是 major. (一般用 origin or master, btw, 我是從別的地方再 clone 過來的, 所以不用此名)
創立一個新的空 git 目錄.
[BASH]
$ cd /data/prj/AMP/core-data
$ git init –bare
[/BASH]

在 source code A 下, 建立一個新的 remote
[BASH]
$ git remote add test /data/prj/AMP/core-data
$ git push test major
[/BASH]

在 source code B 下, 加入一個新的 remote, 用 git reset –hard 是清除所有的改變, 以便 pull
[BASH]
$ git diff
$ git reset –hard
$ git remote add test /data/prj/AMP/core-data/bare/
$ git pull test major
[/BASH]

* 若是遇到這種情形, 可以檢查是不是這個檔在是 untracked, 可以用 $ git status 查看. 如果是 untracked, 可以刪除.
[BASH]
$ git pull test major
From /data/prj/AMP/core-data/bare
* branch major -> FETCH_HEAD
error: Untracked working tree file ‘kernels/linux-2.6.35.12/arch/arm/kernel/real-amp.c’ would be overwritten by merge. Aborting
[/BASH]

git 功能太多 :-/

  1. 網站製作學習誌 » [Web] 連結分享 - pingback on 2011/11/04 at 10:56 下午

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Trackbacks and Pingbacks: