空でない既存のディレクトリをGit作業ディレクトリに変換し、ファイルをリモートリポジトリにプッシュする方法


644
  1. 名前を変更したり、移動したり、削除したりできないファイルを含む空でないディレクトリ(/ etc / somethingなど)があります。

  2. このディレクトリをgitにチェックインしたい。

  3. 「git push」などを使用して、このリポジトリの状態を(別のマシンの)リモートリポジトリにプッシュしたい。

これは、Subversionを使用すると簡単です(現在はSubversionを使用しています)。

svn mkdir <url> -m <msg>
cd <localdir>
svn co <url> .
svn add <files etc>
svn commit -m <msg>

同等のgitとは何ですか?

空のディレクトリに「git clone」して、.gitディレクトリを移動するだけで、すべてが機能するようにできますか?


5
たぶん私はそれを取得できませんがgit init、ローカルディレクトリ内で実行することはできませんか?
フィリップ

別の場所にレポがあり、そのレポにこのレポではないこの他のディレクトリのすべてのコンテンツを追加したいということですか?それとも、そのディレクトリに新しいリポジトリを作成しようとしているだけですか?
Cascabel、2010

回答の多くはgithubについて言及していますが、質問自体はgitに関するものです。githubはgitではなく、gitの中心ではありません。
vfclists

回答:


1056

gitデーモン<url>と空のリポジトリを設定したとします。

cd <localdir>
git init
git add .
git commit -m 'message'
git remote add origin <url>
git push -u origin master

12
abyxの指示は機能しているようです。私は今、実行しています: git config branch.master.remote originそしてgit config branch.master.merge refs/heads/master 、何私はリモートリポジトリをクローン化したかのようにまったく同じになりますで終わるのだろうか?つまりgit pullうまくgit pushいきますか?
HMW 2010

35
これも私にとってはうまくいきました。最初AppNameにGitHubでプロジェクトを作成する必要がありました。どういう<url>意味なのかはっきりしていませんでした。だから、同じ質問は、私たちの簡単な使用GitHub.com、私たちは私たちのレポを実行していない、そして人のための<url>第5ラインで使用されるように、このようなものに見えた:https://github.com/CompanyName/AppName
バート

12
GitHubにないリポジトリを設定する場合は、「git --bare init」を使用して空のリモートリポジトリを設定してください。「git init」ではなく(私が行ったように)設定しないと、プッシュが失敗します。
jdusbabek 14年

3
追加したかったのですが、次の操作を行うまではプッシュできませんでした:git pull --rebase
Artemix

6
リモートにいくつかのマイナーな変更(.README、.gitignoreなど)が含まれているためにgitが拒否した場合git pull origin master --allow-unrelated-historiesは、マージを試みてください。
karlisup 16

80

これが私のやり方です。何が起こっているのかを理解するために説明を追加しました。

ローカルリポジトリの初期化

  • 最初にGitを初期化します

    git init

  • バージョン管理用のすべてのファイルを追加

    git add。

  • 選択したメッセージでコミットを作成する

    git commit -m 'AddingBaseCode'

リモートリポジトリの初期化

  • GitHubにプロジェクトを作成し、プロジェクトのURLをコピーします。以下に示すように:

    ここに画像の説明を入力してください

リモートリポジトリとローカルリポジトリをリンクする

  • コピーしたURLを使用して、ローカルリポジトリとリモートGitHubリポジトリをリンクします。git cloneでリポジトリを複製すると、複製されたリポジトリを指すoriginと呼ばれるリモート接続が自動的に作成されます。コマンドremoteは、追跡されたリポジトリのセットを管理するために使用されます。

    git remote add origin https://github.com/hiteshsahu/Hassium-Word.git

同期する

  • 次に、ローカルコードとリモートコードをマージする必要があります。この手順は重要です。そうしないと、GitHubにコードをプッシュできなくなります。コードをプッシュする前に 'git pull'を呼び出す必要があります。

    git pull origin master --allow-unrelated-histories

コードをコミットする

  • 最後にすべての変更をGitHubにプッシュします

    git push -u originマスター


1
この投稿に記載されているように「git pull」を実行し、エラーが発生しました。受け入れられた「git push」を続け、Bonobo Git Serverに移動すると、変更を確認できます。GITコマンドに関する明確な説明のあるこの投稿に感謝します。
schlebe

これはどういう意味ですか:「プロジェクトのURLをコピーして、プロジェクトのURLをコピーしてください。
gwideman

これはタイポグラフィの間違いです。スクリーンショットに示すように、プロジェクトのURLをコピーしてください
Hitesh Sahu

2
これは正解であり、受け入れられるべきものです。受け入れられた回答には、「同期」ステップがありません。
イラン

28

これが私の解決策です:

git init
git remote add origin PATH/TO/REPO
git fetch
git checkout -t origin/master

.gitignore&を使用してリモートリポジトリをセットアップする場合のREADME.dm
適切

12

リモートリポジトリが空でない場合(これは、hub.jazz.netでIBM DevOpsを使用している場合に該当します)、次のシーケンスを使用する必要があります。

cd <localDir>
git init
git add -A .
git pull <url> master
git commit -m "message"
git remote add origin <url>
git push

EDIT 30th Jan 17:以下のコメントを参照して、正しいリポジトリにいることを確認してください!


上記のコマンドはすべての既存のビルドを一掃しました:(上記の手順を実行する前に注意してください
Selenium Framework

7

.gitignoreやライセンスのように、githubリポジトリが空ではない場合

使用--allow-無関係-履歴プルプッシュ--force-とリース

コマンドを使用する

git init
git add .
git commit -m "initial commit"
git remote add origin https://github.com/...
git pull origin master --allow-unrelated-histories
git push --force-with-lease

1
最後のステートメントをより似たものに変更する必要がありましたgit push -u origin master --force-with-lease
cfont

2

これを行う最も簡単な方法は、以下のとおりです。

これは公式の方法ではないかもしれませんが、うまく機能します。

XYZPCに「」というプロジェクトがあるとします。次に、githubでこのプロジェクトのgitリポジトリを作成し、その機能を使用します。

ステップ1:「www.github.com」に移動

ステップ2: " README.md"ファイルを使用してリポジトリを作成します(好きなように名前を付けます)

ステップ3:リポジトリをPCに複製します。

ステップ4:クローンされたフォルダには、「.git」フォルダと「README.md」ファイルの2つが表示されます。これら2つをプロジェクトフォルダ「XYZ」にコピーします。

ステップ5:複製されたリポジトリを削除します。

ステップ6:プロジェクトのすべてのファイルとフォルダーを追加、コミット、プッシュします。

これで、プロジェクト " XYZ"をgitリポジトリとして使用できます。


0

同様の問題がありました。新しいリポジトリを作成しましたが、リポジトリを作成したいと思っていたディレクトリではありません。次に、作成したファイルをリポジトリを作成したいディレクトリにコピーしました。次に、ファイルをコピーした先のディレクトリを使用して、既存のリポジトリを開きます。

注:既存のリポジトリを作成して開くには、githubデスクトップを使用しました。


0

デフォルトでリポジトリを作成した場合readme fileや、license

git init
git add -A
git commit -m "initial commit"   
git remote add origin https://<git-userName>@github.com/xyz.git //Add your username so it will avoid asking username each time before you push your code
git fetch
git pull https://github.com/xyz.git <branch>
git push origin <branch> 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.