逐語大きな柱 https://www.dazhuanlan.com/2019/08/26/5d633a29ee4c5/
使用して、コードベースの新バージョンgithubの、その他のライブラリークローンから通常の遠隔我々
git clone username@xxx:/xxx/xxx.git
ダウンデフォルトのクローンはマスターブランチ、ない他のブランチです
我々は使用することができgit branch -a
、ローカルとリモートを含め、すべての枝を表示します
(あなたが唯一、ローカルブランチを参照してください使用している場合git branch
のみ、リモートブランチを表示するコマンドを使用git branch -r
コマンド)
チーム開発では、我々は多くの場合、複数のブランチを作成する必要があり、それぞれが別のブランチ上で開発して、コードをマージ
リモートブランチの設立
チームメンバーが使用するためのチームは、最初の支店を作成した場合
これは、リモートブランチにローカルに作成され
あなたは直接DEVという名前の枝を想定して、ローカルブランチを作成することができます
git branch dev
そして、リモートリポジトリのDEVの現地支店に提出
git push origin dev
次のビューリモートブランチ
git branch -a
リモートブランチは、それぞれのブランチで作成された後、チームのメンバーが開発します
リモートブランチに切り替え、他のブランチをマージ
まず、開発の前に、とgit branch -a
ビューリモートブランチ、その後、起源は/ devリモートブランチに切り替え、そして地元のdevに新しいブランチ
git checkout -b dev origin/dev
同時に、リンクローカルおよびリモートブランチdevのdevの支店を設立
そして、ローカルブランチdevの開発者は、開発後(これらの操作は省略されているコミット追加)リモートブランチをプッシュします
git push origin dev
たとえば、今、あなたは、このようDEV2など他人のコード分岐をマージすることができますしたいです
(ローカルその後、DEV2コードを引っ張って、ブランチを作成します)
git checkout master
git branch dev2
git checkout dev2
git pull origin dev2
git add .
git commit -m "合并分支"
この操作は、ローカルのブランチDEV2にラインをプッシュすることを余儀なくされているため、推奨、および非友好的な関連付けられていません
または(直接ローカルブランチをリモートブランチと関連する引上げ)
git checkout -b dev2 origin/dev2
変更と支線が分岐ラインコードDEV2を組み合わせDEV2場合DEVは次いで、ブランチに戻します
git checkout dev2
git pull origin dev2
git checkout dev
git merge dev2
あなたはDEV2へのdevのコードを更新している場合
git checkout dev
git pull origin dev
git checkout dev2
git merge dev
作成し、ローカル支線にアップデート
git branch dev3
git push origin dev3
gitのフェッチ
私たちは分岐鎖状のローカルブランチラインを引くと比較を行う場合は、確認のマージコードの後に、使用することができます
git fetch origin master:tmp
git diff tmp
git merge tmp
上記のコードローカルブランチTMPをプルアップし、その後、既存のブランチの変更のローカルブランチとTMPを表示マスターに起動し、分岐TMPをマージします
最新バージョンは、gitのプルに似て取得し、リモートからローカルへのマージ
git pull origin master
あなたは一時的な枝線を作成する場合は、リモートブランチの場合を見てする必要があります
また、使用することができますgit fetch
降ろさドラッグさ、リモートサーバー上のすべての更新を
その後、ローカルで使用git branch -a
すべてのブランチを見て
削除された枝
ローカルブランチを削除します
git branch -r dev3
コードの存在下で分岐を削除、削除大文字Dの力を使用して、コミットされていない場合を変更します
git branch -D dev3
リモートブランチを削除します。
git branch -r -d origin/dev3
git push origin :dev3
ブランチを切り替えるコミット提出しません
我々は同時に、2つの機能ブロックを開発する二つの枝を使用するときは、いつでも切り替える必要があるかもしれません
そして、完成していないの前提の下で開発された現在のブランチへの変更は、ありますが、コミット操作するためのコードを提出する必要はありません、スイッチングブランチは失敗します
開発がコミットする準備ができて終了した場合、変更は他の支店に提出される、混乱を引き起こします
この場合、最善の解決策は、現在のブランチ上で実行されるgit stash
コマンドを、現在のブランチには、最大保存されます
実行ができた後git status
、彼らは成功したストレージであることを確認し
新しいブランチでの機能開発が完了された後、あなたが作成し、メインブランチマスターの機能を開発するために、別の新しいブランチに切り替えることができ、我々は、枝の上に戻します
とgit stash list
の「メモリ」の私たちのリストをチェックアウトするためのコマンド
そして、使用git stash pop
ストレージスタッシュリストの内容を復元しながら、最近保存され、また、削除されたのリストを復元するためのコマンドを
ローカルロールバック
それは、すでに地元の倉庫ストアにコミットを指しますが、リモートにプッシュしていませんでした
git reset --hard 22f8aae
バージョン番号がコミット22f8aaeは、使用することができますgit lig
表示します
リモートロールバック
あなたはを参照することができますブログ
バグ修正
使用gitのは、タイムズ紙は無関係履歴をマージすることを拒否引き押しタイムズプッシュは拒否:起源/マスターへのプッシュが拒否されました
次のコマンドを使用して操作を引い
Gitは--allow-無関係-履歴を[ブランチ名を引っ張って] [あなたのリモートリポジトリのアドレス]を引っ張ります
として
git pull [email protected]:lulujianglab/react-router-demo.git master --allow-unrelated-histories