記事ディレクトリ
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、マスター、ブランチを参照)。
-
ブランチを作成する
-
平等で孤立した開発
- ブランチをマージ
追加、変更、組み合わせの主な文法
詳細については、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