私が行っているGitチュートリアルでは、行っgit commit
た変更を保存するために使用されます。
その時は何にgit push
使われますか?
私が行っているGitチュートリアルでは、行っgit commit
た変更を保存するために使用されます。
その時は何にgit push
使われますか?
基本的に、 git commit
「リポジトリへの変更を記録する」一方で、git push
「関連するオブジェクトとともにリモート参照を更新する」。したがって、前者はローカルリポジトリに関連して使用され、後者はリモートリポジトリとの対話に使用されます。
これは、Gitモデルとコマンドを説明するOliverSteeleの素敵な写真です。
GitReady.com(私が最初に参照した記事)についてgit push
の詳細を読むgit pull
commit:ローカルリポジトリに変更を追加します
push:最後のコミットをリモートサーバーに転送します
基本的に、git commitは変更をローカルリポジトリに配置し、gitpushは変更をリモートの場所に送信します。
git push
ローカルリポジトリで行ったコミットをリモートリポジトリに追加するために使用されます-と一緒にgit pull
、人々が共同作業できるようにします。
gitは分散バージョン管理システムであるため、違いは、commitが変更をローカルリポジトリにコミットするのに対し、pushは変更をリモートリポジトリにプッシュすることです。
コミット:スナップショット| チェンジセット| バージョン| 歴史記録| リポジトリの「名前を付けて保存」。Gitリポジトリ=コミットのシリーズ(ツリー)。
ローカルリポジトリ:コンピュータ上のリポジトリ。
リモートリポジトリ:サーバー上のリポジトリ(Github)。
git commit
:新しいコミット(最後のコミット+段階的な変更)をローカルリポジトリに追加します。(コミットはに保存され/.git
ます)
git push
、 :ローカルリポジトリを関連する リモートgit pull
リポジトリと同期します。-ローカルからリモートに変更を適用します。-リモートからローカルに変更を適用します。push
pull
git commit
変更をローカルリポジトリに記録します。
git push
ローカルの変更でリモートリポジトリを更新します。
注意すべき3つのこと:
1)作業ディレクトリ-----コードファイルが存在するフォルダ
2)ローカルリポジトリ------これはシステム内にあります。初めてCOMMITコマンドを作成すると、このローカルリポジトリが作成されます。作業ディレクトリと同じ場所に、
Checkit(.git)ファイルが作成されます。
その後、コミットするたびに、作業ディレクトリのファイルに加えた変更がローカルリポジトリ(.git)に保存されます。
3)リモートリポジトリ-----これは、世界中のどこにでもあるサーバーのように、システムの外部にあります。githubのように。PUSHコマンドを作成すると、ローカルリポジトリのコードがこのリモートリポジトリに保存されます
次の点を追加したいだけです。
git push
Yonは、ローカルブランチで行われたコミットをリモートリポジトリにプッシュするために使用するため、コミットするまでプッシュできません。
このgit push
コマンドは2つの引数を取ります。
リモート名、たとえば、origin
ブランチ名、たとえば、master
例えば:
git push <REMOTENAME> <BRANCHNAME>
git push origin master
非常に大雑把な例えです。git commit
編集したファイルを保存する場合と比較すると、git push
そのファイルを別の場所にコピーすることになります。
この例えをこの文脈から外さないでください。コミットしてプッシュすることは、編集したファイルを保存してコピーすることとはまったく異なります。とはいえ、比較のために保持する必要があります。
gitコマンドの使用法を理解しやすく、Githubのリポジトリにログファイルが保持されていると想像するadd
と簡単です。commit
私にとっての典型的なプロジェクトのログファイルは次のようになります。
---------------- Day 1 --------------------
Message: Completed Task A
Index of files changed: File1, File2
Message: Completed Task B
Index of files changed: File2, File3
-------------------------------------------
---------------- Day 2 --------------------
Message: Corrected typos
Index of files changed: File3, File1
-------------------------------------------
...
...
...and so on
私は通常、1日をリクエストで開始し、git pull
リクエストで終了しgit push
ます。したがって、1日のレコード内のすべては、それらの間で発生するものに対応します。毎日、いくつかのファイルを変更する必要がある1つ以上の論理タスクを完了します。そのタスク中に編集されたファイルは、インデックスに一覧表示されます。
これらのサブタスク(ここではタスクAとタスクB)はそれぞれ個別のコミットです。このgit add
コマンドは、「変更されたファイルのインデックス」リストにファイルを追加します。このプロセスはステージングとも呼ばれ、実際には変更されたファイルと実行された変更を記録します。このgit commit
コマンドは、後で参照するために使用できるカスタムメッセージとともに、変更と対応するインデックスリストを記録/確定します。
リポジトリのローカルコピーのみを変更しており、Github上のものは変更していないことに注意してください。git push
この後、これらの記録されたすべての変更を、各コミットのインデックスファイルとともに実行した場合にのみ、メインリポジトリ(Github上)にログオンします。
例として、その架空のログファイルの2番目のエントリを取得するには、次のようにします。
git pull
# Make changes to File3 and File4
git add File3 File4
# Verify changes, run tests etc..
git commit -m 'Corrected typos'
git push
一言で言えば、メインリポジトリへの変更を体系的な論理サブ変更git add
にgit commit
分解できます。他の回答やコメントが指摘しているように、もちろんそれらにはもっと多くの用途があります。ただし、これは最も一般的な使用法の1つであり、Svnのような他の一般的なものとは異なり、Gitが多段階のリビジョン管理システムである背後にある駆動原理です。
git commitは、変更を公式に保存することに他なりません。コミットメッセージを送信するたびに、コミットが完了したら、リモートにプッシュして変更をグローバルに確認できます。
これは、リモートにプッシュする前に多数のコミットを実行できることを意味します(発生したコミットのリストとメッセージも確認できます)gitは、40桁のコードであるコミットIDを使用して各コミットを保存します
そして、リモートで変更を確認したい場合にのみgit pushを使用します(その後、コードがjenkinsで機能するかどうかを確認します)
変更をコミットするときは、変更を単一の論理セットとしてローカルリポジトリに保存します。プッシュせずにこれを複数回行うことができます。それらがプッシュされるまで、それらはローカルリポジトリを離れません。つまり、リモートリポジトリにはこれらの変更のセットがまだないため、他の人がリモートリポジトリからプルするときに、コミットはプルされません。
プッシュすると、ローカルリポジトリで行ったすべてのコミットがリモートリポジトリに転送されるため、このリモートリポジトリを共有する他の開発者がプルすると、変更がローカルリポジトリに転送されます。Gitコマンドとチートシートをここで確認してください。
git commit
ローカルリポジトリにステージングされているファイルをコミットすることです。git push
ローカル側のマスターブランチをリモートマスターブランチと早送りでマージすることです。しかし、マージは常に成功するとは限りません。拒否が表示されpull
た場合は、成功できるようにする必要がありますgit push
。
基本的に、git commitは変更をローカルリポジトリに配置し、gitpushは変更をリモートの場所に送信します。gitは分散バージョン管理システムであるため、違いは、commitはローカルリポジトリに変更をコミットするのに対し、pushは変更をリモートリポジトリにプッシュすることです。
ソースGoogle
http://gitref.org/basic/このリンクも非常に便利です
素人の言葉で言えば、ファイルをgithubに正常にgitするために、それらを実行するgit commit
前のステップです。git push