2016-11-29 7 views
1

私は、.gitフォルダを除いたソースコードを含むローカルディレクトリを持っているので、git統合はありません。リモートを追加して変更をプルダウンしたい私はgit init && git remote add origin https://...を試しましたが、最初のコミットをしたいと思っています。既存のプロジェクトがあるので、私は最初のコミットをしたくありません。git remoteをローカルソースに追加

リモートレポリモートを追加して、最初のコミットなしに変更をプルダウンするにはどうすればよいですか?

+0

[最初のGoogleの結果](http://www.thehorrors.org.uk/snippets/git-local-filesystem-remotes/)それは機能しますか? – Brian

+1

私は、より簡単なアプローチは逆の順序で行うことだと思います。 最初にリモートリポジトリをクローン化してローカルコピー*を作成し、それを '.git'フォルダとしてから、変更を既存のリポジトリにコピーします。 – Lix

答えて

2

簡単には次のようになります。

git clone /url/remote/repo 
git --work-tree=/path/to/source add . 
git commit -m "update repo with local source" 
git push 

トリックは現在のローカルレポworktreeではないファイルを追加するためにgit --work-tree=<path>オプションを使用しています。

-1

リモートを追加して変更をプルダウンします。

ローカルディレクトリをGitリポジトリに変更し、リモートを追加してコンテンツを取得できます。

git init 
git remote add origin repo-url 
git fetch origin master 

あなたは は、あなただけのリモートリポジトリを持つ最新の状態になりたい、あなたがローカルの変更を持っていないことを示唆しているようだ、 を「すべての変更をプルダウン」と言います。 そのような場合は、リモートへのローカルレポをハードリセットすることができ、 任意のローカル違い捨てる:結果

git reset --hard origin/master 

を、ローカルディレクトリをリモートレポで最新の状態になり、 .gitディレクトリを持つ適切なGitリポジトリになります。

+0

gitリポジトリとして起動していないフォルダでgitコマンドを実行することはできません。 OPは、彼のコードが '.git'フォルダのない場所に存在することを示しています。 – Lix

+0

@Lix私は彼がすでに 'git init'を行ったという疑問を理解しました。たぶん私は誤解しました。私はその点を今明らかにした。 – janos

0

あなたは正しいパスにいます。しかし、あなたの質問に答えるためには、少なくともクローニング/フォークすることはできません。既に既存のレポにコードを追加し、そのレポの共同作業者である場合は、レポを分岐し、コードを追加し、所有者がブランチをマスタにマージするようリクエストを引き出すことができます。

プロジェクトの唯一の開発者であれば、initコミットとそれ以降のプッシュは単純にプロジェクトをサーバーに追加するだけで、バージョン管理のgitマジックを開始します。