git コマンドとアプリケーション

git構造

ここに画像の説明を挿入
ここに画像の説明を挿入

1. ウェアハウスを初期化し、.git フォルダーを生成します。

git init

2.一時記憶領域に追加する

git add test1.txt   

-A はすべての変更を一度に送信できます

3. ローカル倉庫に追加

git commit –m “第一次提交”

-m の後に説明が続きます

4. 倉庫の現在のステータスを表示する

git status

画像の説明を追加してください

5. 変更されたファイルの前後の比較を表示します。

git diff test1.txt

画像の説明を追加してください

6. 操作記録の閲覧

git log

画像の説明を追加してください
* 短縮バージョン番号を確認して行を出力します

git log --oneline --pretty

* 分岐図を表示

git log --graph

7. ロールバックバージョン

(1)一度戻る
$ git reset --hard HEAD^

画像の説明を追加してください

(2) 2回ロールバック
$ git reset --hard HEAD^^

もちろん
以前の100バージョンは100^と書いたほうが楽なのでHEAD~100と書きますが、

(3) バージョン番号に従って特定のバージョンにロールバックします。
git reset --hard a0016a25  // 可以不用输全  

8. ロールバックをキャンセルする方法

(1) コマンドラインウィンドウが閉じられていない

ロールバック後、以前に送信されたバージョン番号 ID がわかっている場合は、ロールバック前に戻ることができ、バージョン番号 ID を完全に書き込む必要はありません。
画像の説明を追加してください

(2) コマンドラインウィンドウが閉じられている
 git reflog 记录你的每一次命令

画像の説明を追加してください

9. ワークスペースとリポジトリの最新バージョンの違いを表示する

Git 追跡では、ファイルではなく変更が管理されます。Git
コミットの送信では、一時ストレージ領域内のファイルのみが送信されます。一時ストレージ領域内の送信されていないファイルは、ローカル ウェアハウスに保存されません。

ワークスペースとリポジトリの最新バージョンの違いを表示します。 コマンド:

git diff HEAD -- test1.txt

10. 変更を元に戻す

(1) 変更内容が一時保存領域に提出されていない場合
git checkout -- test1.txt

画像の説明を追加してください

(2) 一時保管領域に変更を提出した場合

まず一時記憶領域の変更を元に戻します

git reset HEAD test1.txt

画像の説明を追加してください

チェックアウトを再度使用する

git checkout -- test1.txt

11. 削除

rm コマンドは、ワークスペース内のファイルを削除します。
git rm は、ファイルを削除し、削除されたファイルの変更を一時記憶領域に送信します
。これは、ファイルを削除した後に git add を実行し、変更を保存するのと同等です。 。

通過できる

git checkout -- test1.txt

回復する

12*、リモート倉庫に接続します

送信中に ssh によって暗号化される gitee github に似ています

ステップ 1: SSH キーを作成します。

ユーザーのホーム ディレクトリに .ssh ディレクトリがあるかどうかを確認します。ある場合は、このディレクトリに id_rsa と id_rsa.pub という 2 つのファイルがあるかどうかを確認します。すでに存在する場合は、次の手順に進んでください。そうでない場合は、シェルを開いて (Windows で Git Bash を開きます)、
SSH キーを作成します。

$ ssh-keygen -t rsa -C "[email protected]"

電子メール アドレスを自分の電子メール アドレスに置き換えて、Enter キーを全押ししてデフォルト値を使用する必要があります。このキーは軍事目的で使用されないため、パスワードを設定する必要はありません。
すべてがうまくいけば、ユーザーのホーム ディレクトリで .ssh ディレクトリが見つかり、その中に 2 つのファイル id_rsa と id_rsa.pub があります。これら 2 つは SSH キーの秘密鍵ペアです。id_rsa は秘密鍵であり、使用できません。 id_rsa.pub誰にでも安心して教えられる公開鍵です

ステップ 2 gitee を例として、公開キーを貼り付けるだけです

画像の説明を追加してください

GitHub が SSH キーを必要とする理由は、
GitHub はプッシュしたコミットが他人のなりすましではなく実際にあなたによってプッシュされたことを識別する必要があるためです。また、Git は SSH プロトコルをサポートしているため、GitHub が公開キーを知っている限り、それを確認できます。あなただけが押すことができます。
もちろん、GitHub では複数のキーを追加できます。複数のコンピュータがあり、しばらくは会社で提出し、しばらくは自宅で提出する場合、各コンピュータのキーを GitHub に追加すれば、各コンピュータの GitHub にプッシュできます。

13*. リモート倉庫をローカル倉庫に関連付けます(ローカル倉庫がある場合はリモート倉庫に関連付けます)

協会を設立する

(1) リモート倉庫の関連付けを確立する
git remote add origin 仓库ssh地址
(2) コンテンツプッシュ
git push -u origin master 

リモート ライブラリは空なので、最初にマスター ブランチをプッシュするときに、-u パラメーターを追加します。Git は、ローカルのマスター ブランチのコンテンツをリモートの新しいマスター ブランチにプッシュするだけでなく、ローカル マスターもプッシュします。ブランチとリモートマスターブランチが関連付けられており、コマンドが簡略化され、将来プッシュまたはプルするときに直接使用できます

git push origin master

リモート ライブラリの削除
リモート ライブラリ情報の表示:

 git remove -v

画像の説明を追加してください

次に名前で削除します

git remote rm origin 仓库名

14*、リモート リポジトリからのクローン作成 (リモートでリポジトリを作成するか、直接クローンを作成するか、ほとんどがこれを行います)

git clone <http或者ssh地址>

15.支店管理

(1) ブランチdevの作成
git checkout -b dev

に相当

git branch dev          // 创建
git checkout dev         // 切换

画像の説明を追加してください
リモートブランチをコミットする

git push -u origin master  
git push --set-upstream origin <branch>
(2) ビューブランチ
git branch

画像の説明を追加してください

(3) ブランチをマージして、dev の変更をマスターにマージします。

マスターに切り替えた後

git merge dev

画像の説明を追加してください

ブランチをマージする場合、Git は可能であれば早送りモードを使用しますが、このモードではブランチを削除するとブランチ情報が失われます。
強制的に早送りモードを無効にしたい場合、Git はマージ時に新しいコミットを生成し、ブランチ履歴からブランチ情報を確認できるようにします。

高速コミットを無効にする方法

git merge --no-ff feature 

**

(4) ブランチdevの削除

ローカルブランチを削除する

git branch -d dev

リモートブランチを削除する

git push origin --delete <branch>       -d -D

ここに画像の説明を挿入

switch メソッドはブランチを切り替えます。
ブランチの切り替えは git checkout ブランチ名を使用することに気付きましたが、上記の元に戻す変更は git checkout – ファイル名です。同じコマンドに 2 つの機能があり、確かに少し混乱しています。
実際、ブランチを切り替えるアクションには switch を使用する方が科学的です。したがって、Git の最新バージョンでは、ブランチを切り替えるための新しい git switch コマンドが提供されています。
新しい dev ブランチを作成して切り替えるには、次のコマンドを使用できます。

git switch -c dev

既存の master ブランチに直接切り替えるには、以下を使用できます。

git switch master

16. プッシュプッシュ、プルプル(フェッチ+マージ)

git pull origin 分支名
git push origin 分支名

17. .gitignore が失敗する理由

無視ルールにディレクトリまたはファイルを追加しましたが、上記の方法で定義した後、無視ルールが適用されないことがわかりました。
解決する:

(1) キャッシュをクリアする
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
git push -u origin master
(2) リモートウェアハウス内の該当ファイルを削除する

18. gitignore 構文

(1) ルール
空格不匹配任意文件,可作为分隔符,可用反斜杠转义
开头的文件标识注释,可以使用反斜杠进行转义
! 开头的模式标识否定,该文件将会再次被包含,如果排除了该文件的父级目录,则使用 ! 也不会再次被包含。可以使用反斜杠进行转义
/ 结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件
/ 开始的模式匹配项目跟目录
如果一个模式不包含斜杠,则它匹配相对于当前 .gitignore 文件路径的内容,如果该模式不在 .gitignore 文件中,则相对于项目根目录
** 匹配多级目录,可在开始,中间,结束
? 通用匹配单个字符
* 通用匹配零个或多个字符
[] 通用匹配单个字符列表
(2) 例:
 bin/: 忽略当前路径下的bin文件夹,该文件夹下的所有内容都会被忽略,不忽略 bin 文件
/bin: 忽略根目录下的bin文件
/*.c: 忽略 cat.c,不忽略 build/cat.c
debug/*.obj: 忽略 debug/io.obj,不忽略 debug/common/io.obj 和 tools/debug/io.obj
**/foo: 忽略/foo, a/foo, a/b/foo等
a/**/b: 忽略a/b, a/x/b, a/x/y/b等
!/bin/run.sh: 不忽略 bin 目录下的 run.sh 文件
*.log: 忽略所有 .log 文件
config.php: 忽略当前路径的 config.php 文件

19. 競合を解決する手順

ここに画像の説明を挿入

gitリセット

ここに画像の説明を挿入

20. git stash の応用

要件aを自分で開発しているとき、開発はまだ完了しておらず、aよりも優先度の高い緊急の要件bが存在するが、既存の要件はまだ開発されていないため、コミットしたくない場合は、バージョンが異なる場合は、git stash コマンドを使用して、変更されたコードをキャッシュして削除できます。

(1)git スタッシュ
git stash // 直接缓存,缓存名称为最新一次commit的内容,如果没有本地提交则是拉远程仓库是的commit内容
git stash save "xxx"  // 加上自己的注释进行缓存

stash は git によって追跡されるファイルに対してのみ動作します

図に示すように:

a. まずファイルのステータスを確認します

ここに画像の説明を挿入

b. 次に、git stash 一時ストレージ ファイル git stash list を実行して、キャッシュされたリストを表示します。

ここに画像の説明を挿入

c. ファイルのステータスを再度確認し、新しく追加されたファイルがキャッシュされておらず、削除されていないことを確認します。

ここに画像の説明を挿入


結論: stash 後に新しく追加されたファイルはキャッシュに入りません。これは、git が新しく追加されたファイルを追跡していないためです。git add <ファイル名> を実行して git にこのファイルを追跡させてから、stash を実行して操作する必要があります。新しいファイル。

(2)gitスタッシュリスト

キャッシュされたリストを返す

(3) git stash ポップ

最新のコンテンツをスタックにポップし、現在のブランチに適用し、ヒープ内のレコードを削除します。
ポップすると、スタック内のキャッシュが削除されます
。ポップされたコンテンツが競合する場合、git はポップを中断し、競合する必要があることを通知します。解決策
git stash Pop の後に git stash list に名前を追加することで、スタック内のレコードを指定することもできます。

git stash pop stash@{0}
(4) git stash apply

Pop に似ていますが、スタック内のこのキャッシュは削除されません。複数のブランチでアプリケーションをキャッシュするのに適しており、
指定することもできます。

git stash apply stash@{0}
(5)git stash ドロップ/git stash クリア

キャッシュを削除する

git stash drop [名]   // 删除单个缓存 举例git stash drop stash@{0}
git stash clear    // 全清
(7)git stash ショー

git stash show [name] // 現在のブランチとの違いを表示

git stash show stash
(8) git stash ブランチ

最新のキャッシュを指定してブランチを作成します


21. 現在のローカル倉庫のリモート倉庫アドレスを変更する

git remote set-url origin <远程仓库地址>

おすすめ

転載: blog.csdn.net/m0_72791534/article/details/127115846