web-dev-qa-db-ja.com

作業ディレクトリとローカルリポジトリの違いは何ですか?

新しいGitHubリポジトリを作成しました。作業ディレクトリとローカルリポジトリにかなり混乱しています。自分で作業する場合、私のものはすべて作業ディレクトリにあります。しかし、リポジトリを操作するときは、自分のものを確認する必要があります。しかし、それらは同じものですか?またはそれらは別々にすべきです。次に、作業ディレクトリにあるものをローカルリポジトリにコミットする方法。ローカルリポジトリをリモートリポジトリにコミットする方法。 Git Bashでこれを行う方法?ありがとう!

26
Zoe

作業ディレクトリは、git制御下にあるソースファイルのディレクトリです(制御下にあるすべてのディレクトリのルートに.gitファイルが存在します)。 Gitは、作業ディレクトリとローカルリポジトリの違い、およびローカルリポジトリとリモートリポジトリ(のいずれか)の違いを追跡しています。

変更内容を確認するには、 $ git status を使用します。

変更(編集または新しいファイル、あるいはその両方)をローカルリポジトリにコミットするには、 $ git add を使用し、次に $ git commit を使用します。

コミットされたものを確認するには、 $ git log を使用します。

次に、変更をリモートリポジトリにコミットする場合は、 $ git Push を使用します。

どのgitコマンドが出力しているかに注意してください。多くの場合、何をすべきかについてのアドバイスが含まれています。

GitHubを使用している場合、それらのヘルプも役立ちます: リモートへのプッシュ

良い基本情報も アトラシアンサイト です。


例えば:

JavaRepo dirで $ git init を使用してgitリポジトリを開始し、そこで $ git pull または $ git clone を使用してプロジェクトをチェックアウトしたとします。次に、JavaRepoに.gitファイル(他のgitドットファイル)を含める必要があります。$ ls -aで確認できます。 これらのファイル自体は ローカルgitリポジトリであり、「作業ディレクトリ」と「ローカルリポジトリ」を区別する必要はありません 'ディレクトリ。

したがって、JavaRepoでファイルの操作を開始します。ファイルexample.Javaを変更し、新しいファイルexample2.Javaを作成したとします。 JavaRepo(またはそのサブディレクトリ)で$ git statusを実行します。 'modified:example.Java' 'Untracked files:example2.Java'と表示されます。

$ git add example.Javaおよび$ git add example2.Javaコマンドを使用して、これらのファイルのあるディレクトリからファイルをステージング領域に追加します。 ($ git addは、変更されたファイルと新しいファイルの両方に対応しています。)

そして最後に$ git commit -m "example changes"でファイルをコミットします(-mはメッセージのために残ります-コミットへのコメント)。

$ git logはこのコミットを表示する必要があります。

20
Alexey Voytenko

作業ディレクトリとローカルリポジトリの間にレイヤーがあります。これはステージング領域と呼ばれます。 'git add'を使用して変更されたファイルを追加すると、変更はまず確認のためにステージング領域に格納されます。次に、「git commit」を使用して、変更をステージング領域からローカルリポジトリにさらにプッシュできます。

2
Shubham Sawant