Gitりィザヌドリィ

1はじめに


私の最埌の投皿で、私は
分散gitバヌゞョン管理システムず比范した盞違点
叀兞的な䞀元化されたハヌド通貚。 目暙は䞻に経隓を䞀般化するこずでした
個々のコマンドの構文の埮劙な点に蚀及せずにシステムを操䜜したす。

これず同じトピックは、Gitの操䜜を盎接玹介するものずしお考えられたした。
チュヌトリアルず䞀般化されたヘルプの䞭間、ただ掚奚されおいたす
䞊蚘の抂芁をお読みください。 意図的に回避された技術
gitの詳现、SLEに共通の甚語のみが䜿甚され、
䞊蚘のコマンドのリストに限定されたす。


2ロヌカルリポゞトリの操䜜


分散システムの胜力は、すべおのロヌカル開発者が利甚できたす。
任意の個人甚スキヌムを線成できるリポゞトリ
開発。 gitには、適切な䜜業を行うためのいく぀かの基本的なコマンドがありたす。
倚くの補助。


2.1基本的なコマンド


基本的なコマンドは、開発䞭になしでは実行できないコマンドです。


2.1.1 git init-リポゞトリの䜜成


git initコマンドは、ディレクトリ内にディレクトリずしお空のリポゞトリを䜜成したす
.git、コミットの履歎に関するすべおの情報が将来保存される堎所、
タグ-プロゞェクト開発の進捗

mkdir project-dir

cd project-dir

git init

リポゞトリを䜜成する別の方法は、git cloneコマンドを䜿甚するこずですが、これに぀いおは埌で詳しく説明したす。


2.1.2 git addおよびgit rm-むンデックス䜜成の倉曎


次に知っおおくべきこずは、git addコマンドです。 これにより、むンデックスに倉曎を加えるこずができたす-䞀時ストレヌゞ-その埌、コミットに含たれたす。 䟋
䜿甚

git add EDITEDFILE-倉曎されたファむルのむンデックス䜜成、たたは通知
新しいものを䜜成したす。

git add。 -新しいファむルを含め、むンデックスにすべおの倉曎を加えたす。

むンデックスずプロゞェクトツリヌから同時に、git rmコマンドを䜿甚しおファむルを削陀できたす。

git rm FILE1 FILE2-個別のファむル

git rm Documentation / \ *。txtは、gitドキュメントから削陀する良い䟋です。
フォルダのすべおのtxtファむルはすぐに削陀されたす。

むンデックス党䜓をリセットするか、むンデックスから特定のファむルぞの倉曎を削陀できたす。
git resetコマンド

git reset-むンデックス党䜓をリセットしたす。

git reset-EDITEDFILE-むンデックスから特定のファむルを削陀したす。

git resetコマンドはむンデックスをリセットするためだけに䜿甚されるわけではありたせん。
圌女はもっず泚目されたす。


2.1.3 git status-プロゞェクトのステヌタス、倉曎されたファむルず远加されおいないファむル、むンデックス付きファむル


git statusコマンドはおそらく最も䞀般的に䜿甚されたす
チヌムのコミットずむンデックス䜜成。 すべおの倉曎に関する情報が衚瀺され、
最埌の䜜業コミットず比范しおツリヌに远加されたプロゞェクトディレクトリ
枝 個別に入力されたむンデックスずむンデックスなし
ファむル。 それを䜿甚するこずは非垞に簡単です

git status

さらに、gitステヌタスは、未解決のマヌゞ競合があるファむルを瀺し、
gitによっお無芖されるファむル。


2.1.4 git commit-コミット


コミットはすべおのバヌゞョン管理システムの基本抂念であるため、
可胜な限り簡単か぀高速である必芁がありたす。 最も単玔な圢匏で、十分な
むンデックスタむプの埌

git commit

むンデックスが空でない堎合、それに基づいおコミットがコミットされ、その埌コミットされたす
ナヌザヌは、コマンドを呌び出しお行った倉曎に぀いおコメントするよう求められたす
線集たずえば、Ubuntuでは、通垞、単玔なnanoテキスト゚ディタヌが呌び出されたすが、
私-emacs。 保存しお、ベヌル コミットの準備ができたした。

git commitでの䜜業を簡単にするいく぀かのキヌがありたす。

git commit -a-ファむルぞの倉曎のむンデックスを自動的にコミットしたす
プロゞェクト。 新しいファむルは玢匕付けされたせん  同じファむルを削陀する
考慮されたす。


git commit -m "commit comment"-コマンドラむンから盎接コミットにコメントする
テキスト゚ディタの代わりに。

git commit FILENAME-倉曎に基づいおコミットをむンデックス化し、䜜成したす
単䞀ファむル。


2.1.5 git reset-特定のコミット、ロヌルバックの倉曎、「ハヌド」たたは「゜フト」に戻る


むンデックスの操䜜䞊蚘を参照に加えお、git resetでは状態をリセットできたす
履歎のコミット前のプロゞェクト。 gitでは、このアクションは2぀にするこずができたす
タむプ「゜フト」゜フトリセットおよび「ハヌド」ハヌドリセット。


「゜フト」「--soft」キヌを䜿甚カットでは、むンデックスずツリヌ党䜓がそのたた残りたす。
プロゞェクトのファむルずディレクトリは、指定されたコミットで動䜜するように戻りたす。 その他
぀たり、コミットされたばかりのコミットで゚ラヌが芋぀かった堎合、たたは
それにコメントするず、状況を簡単に修正できたす

  1. git commit ...-䞍正なコミット。

  2. git reset --soft HEAD ^-すでにコミットされたコミットに取り組みたす。
    すべおのプロゞェクトステヌタスずむンデックスファむルを保存する
  3. 間違ったファむルを線集

  4. ANOTHERWRONGFILEを線集

  5. 远加したす。



6.1。 git commit -c ORIG_HEAD-最埌のコミットに戻るず、提䟛されたす
圌のメッセヌゞを線集したす。 メッセヌゞが倉曎されない堎合、
キヌケヌス-cを倉曎するだけです

6.2。 git commit -C ORIG_HEAD

HEAD ^の指定に泚意しおください。「先祖に連絡する」ずいう意味です。
最埌のコミット。」 このような盞察アドレス指定の構文に぀いお、さらに詳しく説明したす。
「ハッシュ、タグ、盞察アドレス指定」セクションの䞋䜍になりたす。 したがっお、
HEAD-最埌のコミットぞのリンク。 ゜フトカット埌のORIG_HEADのリンク
元のコミットを瀺したす。


圓然、コミットの深さをより深くするこずができたすが、

ハヌドカット--hard switch-䜿甚するコマンド
泚意。 Gitのリセット--hardは、プロゞェクトツリヌずむンデックスを状態に戻したす。
指定されたコミットに察応し、埌続のコミットの倉曎を削陀したす。

git add。

git commit -m "死に至る"

git reset --hard HEAD〜1-他の誰もこの恥ずべきコミットを芋るこずはありたせん。

git reset --hard HEAD〜3-たたは、最埌の3぀のコミット。 誰も。 決しお。


コマンドが分岐点に達するず、コミットは削陀されたせん。

リモヌトリポゞトリから最近の倉曎をマヌゞたたはデフレヌトするため
rezetの䟋は、関連するセクションで説明したす。


2.1.6 git revert-過去に行われた倉曎を別のコミットで砎棄する


個人が行った倉曎を砎棄したい状況があるかもしれたせん
コミットしたす。 Gitの埩垰により、新しいコミットが䜜成され、倉曎が元に戻されたす。


git revert config-modify-tag-タグでマヌクされたコミットをキャンセルしたす。

git revert 12abacd-ハッシュを䜿甚しおコミットをキャンセルしたす。

チヌムを䜿甚するには、プロゞェクトの状態が次ず倉わらないこずが必芁です。
最埌のコミットによっおコミットされた状態。


2.1.7 git log-コミットに関する䞀般的なさたざたな情報、個々のファむルおよびさたざたな深さの履歎ぞの没入


時々、コミットの履歎に関する情報、倉曎されたコミットを取埗する必芁がありたす
別のファむル。 特定の期間などにコミットしたす。 これらのために
目暙はgit logコマンドを䜿甚したす。

すべおぞのクむックリファレンスを提䟛する最も単玔なナヌスケヌス
珟圚アクティブなブランチに觊れたコミットブランチずブランチに぀いお
詳现に぀いおは、以䞋の「ブランチずマヌゞ」セクションをご芧ください。

git log

コミットからのファむルのパッチの圢匏で、それぞれに関する詳现情報を取埗したす
-pたたは-uスむッチを远加するこずにより

git log -p

倉曎されたファむルの数など、ファむル倉曎の統蚈
行、削陀されたファむルは--statスむッチで呌び出されたす


git log --stat

キヌは、ファむルの䜜成、名前倉曎、アクセス暩に関する情報を管理したす
-抂芁

git log --summary

単䞀のファむルの履歎を調べるには、パラメヌタヌの圢匏で瀺すだけで十分です。
圌の名前ずころで、私の叀いバヌゞョンのgitでは、このメ゜ッドは機胜したせんが、
「README」の前に「-」を必ず远加しおください。

git log README

たたは、gitバヌゞョンが最新でない堎合

git log-README

構文の最新バヌゞョンのみを以䞋に瀺したす。 たぶん
特定の瞬間から始たる時間を瀺したす「週」、「日」、「時間」、「s」
など

git log --since = "1日2時間" README

git log --since = "2 hours" README

git log --since = "2 hours" dir /-別のフォルダヌに関する倉曎。


タグで構築できたす

git log v1 ...-v1タグで始たるすべおのコミット。

git log v1 ... README-で始たるREADMEファむルぞの倉曎を含むすべおのコミット
タグv1。

git log v1..v2 README-で始たるREADMEファむルぞの倉曎を含むすべおのコミット
v1タグずv2タグで終わる。

タグの䜜成、リスト、割り圓おは、適切な
以䞋のセクション。

--prettyスむッチは、コマンド出力の圢匏に興味深いオプションを提䟛したす。


git log --pretty = oneline-各コミットにハッシュで構成される行を出力したす
ここでは、各コミットの䞀意の識別子。これに぀いおは埌で詳しく説明したす。

git log --pretty = short-コミットに関する簡朔な情報のみ
著者ずコメント

git log --pretty = full / fuller-コミットに関するより完党な情報、名前付き
䜜成者、コメント、䜜成日、コミットの玹介

原則ずしお、出力圢匏は独立しお決定できたす。

git log --pretty = format 'FORMAT'

圢匏の定矩は、Git Community Bookのgit logセクションにありたす。
たたは助けたす。 キヌを䜿甚しお、コミットの矎しいASCIIグラフが衚瀺されたす
-グラフ。


2.1.8 git diff-プロゞェクトツリヌ間の違い。 コミット; むンデックスの状態ずコミット。


git logコマンドのサブセットの䞀皮はgit diffコマンドです。
プロゞェクト内のオブゞェクト間の倉曎の定矩ツリヌファむルず
ディレクトリ

git diff-むンデックスに加えられおいない倉曎を衚瀺したす。

git diff --cached-むンデックスに加えられた倉曎。


git diff HEAD-最埌のコミットず比范したプロゞェクトの倉曎

git diff HEAD ^-最埌から2番目のコミット

ブランチの「ヘッド」を比范できたす。

git diff master..experimental

たあ、たたはいずれかのアクティブなブランチ

git diff Experimental


2.1.9 git show-別のコミットによる倉曎を衚瀺


gitコマンドを䜿甚しお、履歎のコミットによっお行われた倉曎を確認できたす
衚瀺

git show COMMIT_TAG


2.1.10 git blameずgit annotate-ファむルの倉曎を远跡するのに圹立぀ヘルパヌコマンド


チヌムで働くずき、特定の人を曞いた人を正確に芋぀ける必芁があるこずがよくありたす。
コヌド。 次に関する行ごずの情報を衚瀺するgit blameコマンドを䜿甚するず䟿利です。
行に觊れた最埌のコミット、著者名、コミットハッシュ

git blame README

衚瀺する特定の行を指定するこずもできたす。

git blame -L 2、+ 3 README-2行目から始たる3行で情報を衚瀺したす。

git annotateコマンドも同様に機胜し、文字列ず
それらに圱響を䞎えたコミット

git annotate README


2.1.11 git grep-プロゞェクト、過去のプロゞェクトステヌタスで単語を怜玢


git grepは、䞀般に、有名なUnixの機胜を単玔に耇補したす。
チヌム。 ただし、プロゞェクトの過去に単語ずその組み合わせを怜玢できたす。
非垞に䟿利です

git grep tst-プロゞェクトで単語tstを怜玢したす。

git grep -c tst-プロゞェクト内のtstぞの参照の数をカりントしたす。


git grep tst v1-プロゞェクトの叀いバヌゞョンを怜玢したす。

このコマンドを䜿甚するず、論理ANDおよびORを䜿甚できたす。

git grep -e 'first' --and -e 'another'-最初の行が蚘茉されおいる行を芋぀ける
蚀葉、そしお秒。

git grep --all-match -e 'first' -e 'second'-それが発生する行を芋぀ける
蚀葉の䞀぀でしょう。


2.2分岐


ブランチの操䜜ずマヌゞはgitの䞭心であり、これを実珟するのはこれらの機胜です
システムずの䟿利な仕事。


2.2.1 git branch-ブランチの䜜成、列挙、削陀


gitでのブランチの操䜜は非垞に簡単な手順で、すべおの必芁なメカニズムがありたす
1぀のチヌムに集䞭

git branch-既存のブランチをリストし、アクティブにマヌクしたす。

git branch new-branch-新しいブランチnew-branchを䜜成したす。

git branch -d new-branch-マヌゞされたブランチを削陀したす
珟圚の競合の可胜性の解決。

git branch -D new-branch- ずにかくブランチを削陀したす 。

git branch -m new-name-branch-ブランチの名前を倉曎したす。


git branch --contains v1.2-先祖が存圚するブランチを衚瀺したす
特定のコミット。


2.2.2 git checkout-ブランチを切り替え、コミット履歎から個々のファむルを抜出したす


git checkoutコマンドを䜿甚するず、最埌のコミット間で切り替えるこずができたす
簡略化されたブランチ

他のブランチをチェックアりトする

checkout -b some-other-new-branch-ブランチを䜜成したす。
切り替え。

の最埌のコミットず比范しお珟圚のブランチに倉曎があった堎合
ブランチHEAD、チヌムは負けないように切り替えを拒吊したす
完了した䜜業。 -fスむッチを䜿甚するず、この事実を無芖できたす。

checkout -f some-other-branch

それでも倉曎を保存する必芁がある堎合は、-mスむッチを䜿甚したす。 それからチヌム
切り替える前に、珟圚のブランチに倉曎をアップロヌドしようずし、その埌
競合の可胜性を解決するには、新しい競合に切り替えたす。

checkout -m some-other-branch


ファむルを返すたたは単に以前のコミットからファむルを取り出すには、次の圢匏のコマンドを䜿甚できたす。

git checkout somefile-somefileを最埌のコミットの状態に戻す
git checkout HEAD〜2 somefile-somefileをブランチに沿っお2぀のコミット状態に戻したす。

2.2.3 git merge-ブランチをマヌゞしたす競合の可胜性を解決したす。


gitでの集䞭システムの通垞のプラクティスずは異なり、ブランチのマヌゞ
ほが毎日発生したす。 圓然、䟿利なむンタヌフェむスがありたす
人気のある操䜜

git merge new-feature-珟圚のブランチず新機胜のブランチをマヌゞしようずしたす。

競合が発生した堎合、コミットは発生したせんが、問題のあるファむルに぀いおは発生したす
特別なマヌクはla svnに配眮されたす。 ファむル自䜓は、むンデックス内で次のようにマヌクされたす。
「接続されおいたせん」未結合。 問題が解決するたで、コミットしたす
それは䞍可胜です。

たずえば、TROUBLEファむルで競合が発生したした。これはgitステヌタスで確認できたす。

git merge実隓-倱敗したマヌゞ詊行が発生したした。

git status-問題領域を調べたす。

トラブルの線集-問題を解決したす。

git add。 -倉曎にむンデックスを付け、タグを削陀したす。

git commit-マヌゞコミットをコミットしたす。

それだけです、耇雑なこずは䜕もありたせん。 解決プロセス䞭に、蚱可に぀いお考えが倉わった堎合
競合、入力するだけ

git reset --hard HEAD-これにより、䞡方のブランチが元の状態に戻りたす。


マヌゞコミットがコミットされた堎合、次のコマンドを䜿甚したす。

git reset --hard ORIG_HEAD


2.2.4 git rebase-フラットなコミットラむンを構築する


開発者が別のブランチを開発するための远加のブランチを持っおいるずしたす
機䌚ずその䞭でいく぀かのコミットを行いたした。 同時に
メむンブランチでもコミットがコミットされた理由たずえば、
倉曎はリモヌトサヌバヌからダりンロヌドされたす。 たたは開発者自身がそれにコミットしたした
コミットしたす。

原則ずしお、通垞のgit mergeでできたす。 しかし、その埌、線はより耇雑になりたす
開発、これは倧きすぎるプロゞェクトでは望たしくありたせん。
倚くの開発者。

masterずtopicずいう2぀のブランチがあり、それぞれにブランチの瞬間からかなりの数のコミットがあったずしたす。
git rebaseコマンドはトピックブランチからコミットを取埗し、ブランチの最埌のコミットに適甚したす
マスタヌ

  1. git-rebaseマスタヌトピック-䜕をどこで明瀺的に瀺すオプション
    添付。
  2. git-rebase master-珟圚アクティブなマスタヌにスヌパヌむンポヌズされたす
    ブランチ。



コマンドを䜿甚した埌、ストヌリヌは線圢になりたす。 発生時に
代替コミットずの競合
チヌムの䜜業が停止し、問題のある領域にファむルが衚瀺されたす
䞀臎するタグ。 線集埌-競合解決-ファむル
むンデックスにgit addを远加し、次のオヌバヌレむを続行する必芁がありたす
git rebase --continueコマンドでコミットしたす。 代替出力はコマンドになりたす
git rebase --skipオヌバヌレむコミットをスキップしお次のコミットに移動たたはgit
rebase --abortコマンドず行われたすべおの倉曎をキャンセルしたす。

-iスむッチ--interactiveを䜿甚するず、コマンドは察話的に機胜したす
モヌド。 ナヌザヌには、アプリケヌションの順序を決定する機䌚が䞎えられたす
倉曎は自動的に゚ディタヌを呌び出しお競合を解決したす。
さらに。


2.2.5 git cherry- pick-別のコミットによる倉曎をプロゞェクトツリヌに適甚する


耇雑な開発履歎があり、いく぀かの長いブランチがある堎合
開発、それは行われた倉曎を適甚する必芁があるかもしれたせん
1぀のブランチを別のツリヌ珟圚アクティブぞの個別のコミットずしお。

git cherry-pick BUG_FIX_TAG-指定されたコミットによる倉曎は
ツリヌに適甚され、自動的にむンデックス付けされ、アクティブにコミットされたす
ブランチ。

git cherry-pick BUG_FIX_TAG -n-キヌ「-n」は、倉曎が必芁であるこずを瀺したす
むンデックスを䜜成しおコミットを䜜成せずに、プロゞェクトツリヌに適甚するだけです。


2.3その他のコマンドず必芁な機胜


gitでの䜜業の利䟿性のために、远加の抂念が導入されたしたタグ。 さらに
ハッシュの必芁性ずその適甚に぀いおさらに説明したす。 瀺された方法
盞察アドレス指定を䜿甚しおコミットにアクセスしたす。


2.3.1ハッシュ-䞀意のオブゞェクト識別


gitでは、ナニヌクなもの぀たり
最も可胜性の高い䞀意の40文字のハッシュ。これは決定されたす
オブゞェクトの内容に基づいたハッシュ関数。 オブゞェクトはすべおですコミット、
ファむル、タグ、ツリヌ。 ハッシュは、たずえばファむルのコンテンツに察しお䞀意であるため、
そのようなファむルの比范は非垞に簡単です-2行を比范するだけです
40文字で。

私たちが最も興味を持っおいるのは、ハッシュがコミットを識別するずいう事実です。 これで
ハッシュはSubversionの高床なバヌゞョンです。 いく぀かの䟋
アドレス指定方法ずしおハッシュを䜿甚する

git diff f292ef5d2b2f6312bc45ae49c2dc14588eef8da2-珟圚の差を芋぀ける
プロゞェクトのステヌタスずその番号のコミット...

git diff f292ef5は同じですが、最初の6文字のみを残したす。 Git
そのようなコミットが他にない堎合、どのようなコミットが関䞎しおいるかを理解したす
ハッシュの始たり。

git diff f292-時には4文字で十分です。

git log febc32 ... f292-コミットからコミットたでログを読み取りたす。


もちろん、ハッシュを䜿甚するこずは、マシンの堎合ほど人にずっお䟿利ではありたせん。そのため、
他のオブゞェクトを導入-タグ。


2.3.2 gitタグ -䞀意のコミットをマヌクする方法ずしおのタグ


タグは、コミットに関連付けられたオブゞェクトです。 コミット自䜓ぞのリンクの保存、名前
著者自身の名前ずコメント。 さらに、開発者は
これらのタグに独自のデゞタル眲名を残したす。

さらに、いわゆる「軜量タグ」「軜量」
タグ "、名前ずコミットぞのリンクのみで構成されたす。 これらのタグは通垞
履歎ツリヌのナビゲヌションを簡玠化するために䜿甚されたす。 それらの䜜成は非垞に簡単です。

git tag stable-1-最埌に関連付けられた「軜量」タグを䜜成したす
コミットしたす。 すでにタグがある堎合、別のタグは䜜成されたせん。

git tag stable-2 f292ef5-特定のコミットをマヌクしたす。

git tag -d stable-2-タグを削陀したす。

git tag -l-タグをリストしたす。

git tag -f stable-1.1-最埌のコミット甚のタグを䜜成し、眮き換えたす
存圚する堎合。

タグを䜜成した埌、コマンドでハッシュの代わりにその名前を䜿甚できたす
git diff、git logなど


git diff stable-1.1 ... stable-1

通垞のタグを䜿甚しお、
バヌゞョン番号やコメントなどの情報。 蚀い換えれば、
「そのようなバグを修正した」コミットにコメントを曞いおから、タグぞのコメントに
「v1.0」ずいう名前は、「安定したバヌゞョン、すぐに䜿甚できる」などです。

git tag -a stable-最埌のコミット甚に通垞のタグを䜜成したす; ず呌ばれたす
コメント甚のテキスト゚ディタヌ。

git tag -a stable -m "production version"-すぐに指定しお通垞のタグを䜜成したす
匕数ずしおコメントしたす。

通垞のタグのリスト、削陀、曞き換えコマンドは、
「軜量」タグのコマンド。


2.3.3盞察アドレス指定


リビゞョンずタグの代わりに、コミットの名前ずしお別のものに䟝存できたす
メカニズム-盞察アドレス指定。 たずえば、先祖に盎接行くこずができたす
マスタヌブランチの最埌のコミット

git diff master ^

「鳥」の埌に数字を付けるず、耇数の先祖に察応できたす
コミットのマヌゞ

git diff HEAD ^ 2-最埌の2番目の祖先ず比范しお倉曎を芋぀ける
マスタヌでコミットしたす。 ここのHEADは、アクティブなブランチの最埌のコミットぞのポむンタです。

同様に、チルダは単にブランチの履歎の深さを瀺すこずができたす
ダむビングする必芁がありたす

git diff master ^^-珟圚のコミットの「祖父」がもたらしたもの。

git diff master〜2は同じです。

シンボルを組み合わせお、目的のコミットを取埗できたす。

git diff master〜3 ^〜2

git diff master〜6


2.3.4 .gitignoreファむル -無芖するファむルをgitに説明する


時々、プロゞェクトディレクトリに、垞に保存したくないファむルが含たれおいる
抂芁のgit statusをご芧ください。 たずえば、補助テキストファむル
゚ディタヌ、䞀時ファむル、その他のゎミ。

ルヌトたたはより深いツリヌを䜜成するこずにより、gitステヌタスを無芖できたす
制限が特定のディレクトリのみにある堎合ファむル
.gitignore。 これらのファむルでは、無芖されるファむルのパタヌンを説明できたす。
特定の圢匏。

そのようなファむルの内容の䟋

>>>>>>>ファむルの開始

.gitignoreファむルにコメントする

.gitignore自䜓を無芖


.gitignore

すべおのhtmlファむル...


* .html


...特定の䟋倖を陀く


special.html


オブゞェクトずアヌカむブは必芁ありたせん

*。[ao]

>>>>>>>>ファむルの終わり

無芖できるファむルを指定する方法は他にもありたす。
git help gitignore helpから。


3「共に力を発揮する」、たたはリモヌトリポゞトリでの䜜業の基本


圓然、ほずんどのプロゞェクトにはただ䜜業が含たれおいたす
コヌドを亀換する必芁がある少なくずも2人の開発者。 次は
連携するために必芁なコマンドをリストしたす-おそらくリモヌト-。


3.1リモヌト远跡ブランチ


ここでの新しい抂念は、リモヌトブランチです。 リモヌトブランチは
リモヌトサヌバヌ䞊のブランチ通垞はマスタヌ。 そのようなものは、次の堎合に自動的に䜜成されたす
リモヌトリポゞトリのコピヌを䜜成したす。 すべおのリモヌト関連コマンド
動䜜し、デフォルトでこの特定のリモヌトブランチを䜿甚したす通垞は
「オリゞン」ず呌ばれたす。

これらのコマンドを怜蚎しおください。


3.2 git clone- リモヌトリポゞトリのコピヌを䜜成する


䞭倮リポゞトリを䜿甚するには、コピヌを䜜成する必芁がありたす
ロヌカルにすべおの歎史を持぀元のプロゞェクト

git clone / home / username / project myrepo-同じマシンからリポゞトリを耇補したす
myrepoディレクトリに移動したす。

git clone ssh// user @ somehostport /〜user / repository-リポゞトリを耇補し、
安党なsshプロトコルを䜿甚したすマシン䞊で取埗する必芁がありたす
sshアカりント。

git clone git// user @ somehostport /〜user / repository / project.git /-git has
および独自のプロトコル。


3.3 git fetchずgit pull- リモヌトブランチから䞭倮リポゞトリから倉曎をプルしたす


珟圚のブランチをリポゞトリず同期するには、git fetchず
git pull。

git fetch-リモヌトブランチの倉曎をデフォルトリポゞトリから取埗したす。
メむンブランチ; クロヌン䜜成時に䜿甚されたもの
リポゞトリ。 倉曎により、リモヌト远跡ブランチが曎新されたす
git mergeコマンドでロヌカルブランチずマヌゞするために必芁なもの。

git fetch / home / username / project-特定の倉曎を遞択したす
リポゞトリ。

git remoteコマンドで䜜成されたアドレスに同矩語を䜿甚するこずもできたす。

git remote add username-project / home / username / project

git fetch username-project-定矩されたアドレスで倉曎を取埗したす
ず同矩。

圓然、たずえばgit diffコマンドを䜿甚しお、倉曎を評䟡した埌、
メむンでマヌゞコミットを䜜成したす。

git merge username-project / master

git pullコマンドはすぐに倉曎を取埗し、アクティブなブランチずマヌゞしたす。

git pull-リモヌトブランチが䜜成されたリポゞトリから遞択
デフォルトで。

git pull username-project-特定のリポゞトリから倉曎を取埗したす。


原則ずしお、git pullコマンドはすぐに䜿甚されたす。


3.4 git push-リモヌトリポゞトリに倉曎を加えたすリモヌトブランチ


実隓ブランチで䜜業を実行した埌、メむンブランチずマヌゞしお、
リモヌトリポゞトリリモヌトブランチを曎新する必芁がありたす。 このために
git pushコマンドが䜿甚されたす

git push-䜜成されたリモヌトブランチに倉曎を送信したす
デフォルトでクロヌニング。

git push ssh//yourserver.com/~you/proj.git master実隓的-倉曎を送信
リモヌトリポゞトリのmasterブランチからExperimentalブランチぞ。

git push originExperimental-リモヌトオリゞンリポゞトリで、experimentalブランチを削陀したす。

git push origin mastermaster-オリゞンリポゞトリのリモヌトマスタヌブランチぞ同矩語
デフォルトリポゞトリロヌカルマスタヌブランチのブランチ。


4 git-o-day


このセクションでは、いく぀かの普通の
gitの状況で䜜業するこずは珍しくありたせん。


4.1ロヌカルリポゞトリで䜜業するずきの通垞のワヌクフロヌ


Gitは、配垃されおいるだけでなく、非垞に䜿いやすい
バヌゞョン管理システムだけでなく、ロヌカルプロゞェクトでの䜜業にも。 芋おみたしょう
通垞のルヌプ-リポゞトリの䜜成から開始-git developer work
自分の個人プロゞェクト

  1. mkdir git-demo

  2. cd git-demo

  3. git init

  4. git add。

  5. git commit -m "初期コミット"

  6. gitブランチの新機胜

  7. git checkoutの新機胜

  8. git add。

  9. git commit -m「新しい機胜を完了したした」

  10. git checkout master

  11. git diff HEAD新機胜

  12. git mergeの新機胜

  13. git branch -d new-feature

  14. git log --since = "1 day"



各アクションを分析したしょう。1-2-
プロゞェクトの䜜業ディレクトリを䜜成したす。 3-ディレクトリにリポゞトリを䜜成したす。 4-すべおの既存の
プロゞェクトファむルのむンデックスを䜜成したすもちろん、そうであった堎合。 5-初期化
コミットを䜜成したす。 6-新しいブランチ、7-ブランチぞの切り替え
git checkout -b new-featureコマンドを䜿甚するず、1ステップで実行できたす。さらに、
コヌドを盎接操䜜した埌、行われた倉曎のむンデックスを䜜成し8、コミットしたす9。
メむンブランチに切り替え10、アクティブブランチの
最埌のコミットず実隓的ブランチの最埌のコミット11の違いを確認したす。マヌゞし12、
競合がなければ、䞍芁になったブランチを削陀したす13。念のため
、最埌の1日に実斜した䜜業を評䟡したす14。

なぜそうですかなぜ線圢モデルを攟棄するのですか
プログラマに柔軟性が远加されたずいう理由だけで、
タスクブランチを切り替えるこずができる堎合。垞に手元にあるのは「玔粋な」
マスタヌブランチです。コミットはより小さく、より正確になりたす。


4.2リモヌトリポゞトリで䜜業するずきのワヌクフロヌ


あなたずあなたのパヌトナヌのいく぀かが
、共通のプロゞェクトを匕き受けるために公開リポゞトリを䜜成したず仮定したす。
gitの最も䞀般的な䜜業モデルはどのようなものですか

  1. git clone http://yourserver.com/~you/proj.git
    ...しばらく時間が経ったかもしれたせん。

  2. git pull

  3. git diff HEAD ^

  4. git checkout -b bad-feature
    ...しばらく動䜜しおいたす。

  5. git commit -a -m「悪い機胜を䜜成したした」

  6. git checkout master

  7. git pull

  8. git merge bad-feature

  9. git commit -a

  10. git diff HEAD^
    
 , , - . おっず


  11. git reset --hard ORIG_HEAD

  12. git checkout bad-feature
    
 .

  13. git -m bad-feature good-feature

  14. git commit -a -m «Better feature»

  15. git checkout master

  16. git pull

  17. git merge good-feature

  18. git push

  19. git branch -d good-feature



そのため、たず最初にcreate1リモヌトリポゞトリのコピヌを䜜成したす
デフォルトでは、git pullやgit pushなどのコマンドが機胜したす。
最新の曎新を「プル」する2。䜕が倉わったのかを芋る3;新しいブランチを䜜成しお、
それに切り替えたす4。すべおの倉曎にむンデックスを付け、同時にそれらから
コミットを䜜成したす5。メむンブランチに切り替え6、曎新したす7。実斜
8分岐悪い-機胜ずの合䜵をし、玛争を発芋し、解決するために、我々は、コミット行う
合䜵9。

コミット埌、倉曎を远跡し10、たずえば
単䜓テストを実行し、マヌゞ埌にプロゞェクトがほずんど
のテストに該圓するこずを恐怖で芋぀けたす。

原則ずしお、テストはコミットの前に、
マヌゞの時点で実行できたすポむント8ず9の間。「゜フト」カットで十分です。

したがっお、発生したマヌゞを「ハヌド」11リセットする必芁があり、
ブランチは元の状態に戻りたした。次に、倱敗した
ブランチに切り替え12、必芁な倉曎を加えお、ブランチの名前を倉曎したす13。コミット
14をコミット。メむンブランチに移動し15、再床曎新したす16。今回
はシヌムレスにマヌゞし17、リモヌトリポゞトリに倉曎をドロップし
18、䞍芁になったブランチを削陀したす19。私たちはラップトップを閉じ、服を着
お、朝に垰宅したす。


5結論


このトピックでは、
パブリックリポゞトリの管理、テキスト゚ディタヌたたはIDEずの統合、
LinuxおよびWindowsでのSSHの䜿甚など、いく぀かの重芁な問題に察凊しおいたせん。コメント、特に
git-o-dayセクションぞの远加を歓迎したす。


UPDリモヌトリポゞトリの操䜜に関する泚意。管理、パブリックリポゞトリの䜜成、アクセス制埡、暗号化された接続の䜿甚などでgitを䜿甚する堎合、特定の質問が発生する可胜性がありたす。さらに、このノヌトでは、それらはいかなる方法でもカバヌされおいたせん。たずえば、既補のリモヌトリポゞトリの操䜜に぀いおは䞊蚘で説明しおいたす。その展開は、いかなる方法でもカバヌされおいたせん。

これらすべおを今、別のトピックで収集しおいたす。これを1週間半でここに投げたす。

Source: https://habr.com/ru/post/J60347/


All Articles