Gitの3つの中心的な問題は常に言う:バージョン、ブランチ、リモート

Gitについて

重要で絶対的に質の高い学習リソース

Liao Xuefengの公式ウェブサイト:Gitチュートリアル
Git Pro Book
Git Official Document

Gitコアのアイデア

  • バージョン管理(SVNでも利用可能)
  • 低コストのブランチ:ポインターを移動する
  • ローカルリモート配布:1つのバスケットに卵を入れないでください
  • アプリケーションの考え方:同じ目標がGitの哲学です。

変更とバージョンのロールバック

詳細については、git checkout / git reset / git revert / git restore。一般的なロールバック操作を
参照してください。Gitでは、
コミット、バージョン、HEADの間に密接な関係があります。Commitはバージョンであり、HEADは(現在の)コミットへの参照です。詳細については、HEADに関連するGitタイムライン構造の基本概念の要約を参照してください。

チェックアウト

現在の変更を確認してください。ここで作業ツリーの変更削除します(作業ツリーはローカルフォルダーです)

形式を使用

git checkout -- <file_name>

ファイル名の前にスペースがあることに注意してください。変更のみを削除でき、追跡されていないファイルは削除できません。追跡されていないファイルが手順使用する必要がないようにするclean

  • ステージがない場合は、ワークスペースの変更をキャンセルします

    git restore --worktree <filename>またはを使用することもできますgit restore -W <filename>

  • ステージングされている場合は、このステージをキャンセルしてください

バージョンをリセット(リセット)

バージョンのロールバックのためにHEADポインターをリセットします。

# (对某branch)
git reset <version>  <filename>`
  • バージョンは主にHEADポインタで表されるか、バージョン番号を直接使用できます

  • HEADアンステージ解除に対応して、HEAD^1バージョンHEAD~n前に戻る、nバージョン前に戻る

    Unstageはgit restore --staged <filename>or も使用できますgit restore -S <filename>特定のバージョンにロールバックするには、バージョン番号を直接追加できます。

  • デフォルトは固定モードで、ロールバックの変更は作業ツリーに返されます(ステージングされていない変更)。

あきらめる(復元)

リセットする手段、前を倒す。復元の2種類の使用法は、チェックアウトとリセットによって解決できます。これは、前述の作業領域の変更とバージョンのロールバックを元に戻すことです。ただし、変更を破棄する場合、ステージングを解除し、復元構文を非常に簡潔にすることができます。

git restore <filename>

詳細については、https://www.jianshu.com/p/dcef204dba74を参照してください

元に戻す

もう一度やるという意味です。以前のレコードは消去されません。変更タイムラインの背後にある指定されたバージョンを続行します。

ブランチオペレーション:Gitの魂

これはGitの最も独創的なデザインです。簡単な手順は次のとおりです(図のHEAD、マスター、ブランチを参照)。

  1. ブランチを作成するここに画像の説明を挿入

  2. 平等で孤立した開発

ここに画像の説明を挿入

  1. ブランチをマージここに画像の説明を挿入

追加、変更、組み合わせの主な文法

詳細については、eBayチュートリアルを参照してブランチ表示してください

git branch

ブランチを作成します。

git checkout -b <branch-name> # 创建+切换
git branch <branch-name>

ブランチを切り替える:

git checkout <branch-name>
git switch <branch-name>
git switch -c <branch-name> # 创建+切换

ブランチのマージ:
:ブランチbranch1を現在のブランチにマージ

git merge branch1

紛争解決

2つの一般的な競合。

最初のタイプ:バージョン間の競合を管理します。

git diff <filename>

diffコマンドを使用すると、元のファイルに表示されます

<<<<<<<<<<<<<<<<<<<<<<<<<<
==========================
>>>>>>>>>>>>>>>>>>>>>>>>>>

2つのコードを分離し、手動で1つにアセンブルします。

また、リモートコラボレーションでは競合が発生します。つまり、空のライブラリとローカルライブラリが関係を確立するときに、パラメータをpull使用--rebaseしてそれらを準拠するcommitタイムラインにマージします。

リモートコラボレーション

リモートエンドにも、FETCH_HEADという名前のローカルポインターと同様のHEADポインターがあります。関連する問題については、https: //www.cnblogs.com/Venom/p/5477367.htmlを参照してください。

リモートライブラリを関連付ける

関連付け方法

git clone <url>
# 或
git remote add [库名]

リンク解除:

git remote rm origin

ライブラリ名はデフォルトでoriginです。Giteeバックアップを作成する場合は、最初にGitHubとの関連付けを削除してから、githubに名前を変更できます。

プッシュ変更(push)

リモート操作の最も基本的な文:ローカルを使用してリモートを変更します。通常は個人で使用します(最新の分岐保証)。

文法:

git push [主机名] [本地分支]:[远程分支]

シナリオ例

  • リモートブランチマスターを作成します。git push origin master

  • リモートブランチマスターを削除します:(git push origin :master空のブランチを指定したブランチオリジン/マスターにプッシュします)

    原点は、ホスト名、およびへ2つの文の対応上でプッシュを表し、master:masterそして[null]:master

  • ローカルリモートトラッキングを作成する:git push -u origin masterまたはgit branch --set-upstream master origin/next

  • 追跡関係のある更新のプッシュ:(git push originブランチ名を省略、デフォルトは現在のブランチとリモートの対応するブランチです)

  • 追跡ブランチは1つしかありません。git push

通常、リモートライブラリはローカルライブラリよりも新しいため、プッシュが正常に完了しない場合があるため、最初にプルしてからプッシュする必要があります。

リモートプル(プル)

手順については、https://www.yiibai.com/git/git_pull.htmlを参照してください

リモートからフェッチ(フェッチ)してローカルにインポート(マージ)して、最新でない問題に対処します。
このプロセスは、次の3つのステートメントと同等です。

git fetch origin master:tmp
git diff tmp 
git merge tmp

文の構造はプッシュと同じです。

新しい倉庫を作成するプロセスが関係なく、次のようにマージを拒否した場合:

fatal: refusing to merge unrelated histories

次に、リベースし、リングバージョンの変更プロセスを排除します

git pull --rebase origin master

参照文書

(侵害を削除するには連絡してください)

Liao XuefengのGitチュートリアル
Git公式Webサイトのドキュメント
git checkout / git reset / git revert / git restore一般的に使用されるロールバック操作
HEAD、マスター、ブランチ
GIT変更を元に戻す

EasyBuyチュートリアル:
gitブランチコマンド
git pullコマンド

git fetch、git pull、およびFETCH_HEADは

Gitサブモジュールを使用してgit pullとgit pull --rebaseを単純に比較したもので、gitライブラリーの追跡されていないファイル(監視されていない)ファイル
削除します

リンクリスト

https://www.liaoxuefeng.com/wiki/896043488029600
https://git-scm.com/doc
https://blog.csdn.net/albertsh/article/details/104719370
https://www.jianshu.com / p / 4219b6f62ce3
https://www.jianshu.com/p/dcef204dba74
https://www.yiibai.com/git/git_branch.html
https://www.yiibai.com/git/git_pull.html
https:/ /www.cnblogs.com/Venom/p/5477367.html
https://www.cnblogs.com/kevingrace/p/5896706.html
http://blog.jqian.net/post/git-submodule.html
https: //blog.csdn.net/ronnyjiang/article/details/53507306

おすすめ

転載: blog.csdn.net/weixin_45502929/article/details/108632641