Git 命令速查表
git的初始化
git init
状态和搜索
#addしたファイルや修正したけどaddしてないファイルの状況など分かる
git status
#過去のコミットした状況が分かる
git log
git show
#直前のコミットとの差分(オプションなしdiff)
git diff
#2点間の差分が分かる
git diff [コミットID]..[コミットID]
#ブランチ同士の差分を見る
git diff [ブランチ名]..[ブランチ名]
#pullする前に、リモート追跡ブランチとの差分を確認する
#(たとえば今あなたがmasterブランチにチェックアウトしていて、リモートリポジトリのmasterと比較したい場合)
#1.まずリモートリポジトリから更新内容を取得してきて
git fetch origin
#2.ローカルリポジトリのmasterブランチの最新コミット(HEAD)と、リモート追跡ブランチ(origin/main)を比較する
git diff HEAD..origin/main
#push する前に、リモート追跡ブランチとの差分を確認する
#(ローカルで進めたコミットをpushする前に、リモートリポジトリの状態と比較したいとき)
git diff origin/master..HEAD
#保存したリスト(スタッシュリスト)を見る
git stash save
#特定の文字列を含む箇所を検索したい(大文字、小文字を区別する)
git grep "検索したい文字列"
#行番号も表示する設定
git config --gloal grep.lineNumber true
#コミットやブランチを指定して検索したい
git grep "検索したい文字列" [コミットID,ブランチ]
#特定ワードを含むファイル名のみ表示したい
git grep -l “検索したい文字列”
#いつ誰のコミットでその行が変更されたのかを調べられます。
git blame [ファイル名]
#タグを一覧表示
git tag
#スタッシュを表示
git stash list
编辑的修改如提交的反映
#ステージングする(ワイルドカード指定もできる)
git add ファイル名
#変更ファイルすべてをステージングする
git add .
#ステージングを下げる
git restore --staged ファイル名
#ステージングを下げる ファイルの変更まではもとに戻らない
git reset
#変更内容を確認する
git diff --cached
#コミット
git commit
#コメント付き(エディターが立ち上がらない)
git commit -m "ここにコメントを書き込む"
#変更の詳細を見れる
git commit -v
#コミットの内容を見る コミットIDははじめ4ケタだけでもいい
git show コミットID
#直近
git show
#別のブランチでやってる特定のコミットだけをコピーしてきて、コミットする
git cherry-pick [コミットID]
#複数は
git cherry-pick [コミットIDその1]..[コミットIDその2]
#取り込みたいけどコミットはしたくないとき(作業ディレクトリだけに反映する)
git cherry-pick -n [コミットID]
#作業中のファイルを一時保存
git stash save
#保存したリスト(スタッシュリスト)を見る
git stash list
#スタッシュを復活させる
git stash apply stash@{n}
#スタッシュを削除する
git stash drop stash@{n}
#スタッシュの復活&削除
git stash pop stash@{n}
#タグをつける
git tag [タグ名]
#注釈付きタグをつける(aはアノテート)
git tag -a [タグ名] -m "注釈"
#タグをリモートリポジトリに共有する
git push origin [タグ名]
#複数のタグを全部プッシュする
git push origin --tags
#タグを一覧表示
git tag
#ローカルリポジトリのタグの削除
git tag -d [タグ名]
#リモートリポジトリのタグの削除
git push origin --delete [タグ名]
恢复原样
#ワークディレクトリ上の変更を元に戻す
git checkout "ファイル名"
#ワークディレクトリ上の変更を元に戻す
git restore --worktree [ファイル名]
#ワークディレクトリ上の変更を元に戻す
git reset --hard HEAD
#特定のファイルを、特定のコミット時点に戻す
git restore --source [コミットID] [ファイル名]
#特定のファイルを、特定のコミット時点に戻す
git checkout [コミットID] [ファイル名]
#直前のコミットをやり直す(※push後には使ってはいけない)
git commit --amend
#リバート(指定したコミットと逆の内容をコミットする)(※push後にも使える)
git revert [打ち消したいコミットID]
#HEADの位置のみ
git reset --soft HEAD^
#8個前のコミットまで戻す
git reset --soft HEAD~8
#指定したコミットIDまで戻す
git reset --soft caddd1c
#HEADとステージも戻す(addしたファイルを、addする前に戻す)
git reset --mixed [ファイル名]
#HEADとステージも戻す(addしたファイルを、addする前に戻す)
git restore --staged [ファイル名]
#HEADとステージと作業ディレクトリも戻す
git reset --hard
#リフログ(HEADの移動履歴を表示)
git reflog
#戻りたい地点の数字を指定してリセットする
git reset --hard HEAD@{n}
#スタッシュを復活させる
git stash apply stash@{n}
#スタッシュを削除する
git stash drop stash@{n}
#スタッシュの復活&削除
git stash pop stash@{n}
分化
#ブランチの確認
git branch
#すべてのブランチを表示
git branch -a
#ブランチ生成
git branch 新規ブランチ名
#リモートブランチを元にローカルブランチを作成する
git branch [新規ローカルブランチ名] origin/[コピーしたいリモートブランチ名]
#ブランチ変更
git checkout ブランチ名
#ブランチ変更
git switch ブランチ名
#ブランチの生成&変更
git checkout -b 新規ブランチ名
git switch -c 新規ブランチ名
#ブランチ削除(小文字の場合はマージしていない変更があれば削除されない)
git branch -D[d] engawa
#前のブランチに戻る
git checkout -
#ブランチ名を変更する
git branch -m 変更後ブランチ名
#リモートブランチをローカルワークスペースに落とす
git checkout -t ブランチパス
#すでに消されたブランチをローカルでも消す
git fetch --prune
#すでに消されたブランチをローカルでも消す
git remote prune [リポジトリ名]
与远程的交流
#プッシュする
git push [リモート] [ローカルブランチ名]
#リモートリポジトリを表示
git remote
#登録(追加)されているリモートリポジトリのURLを表示
git remote -v
#リモートからローカルブランチにコピーする
git fetch
#リモートからワークツリーにマージする
git pull リモート名 ブランチ名
#リモートリポジトリ名を変更
git remote rename [旧リモート名] [新リモート名]
#リモートリポジトリを削除
git remote rm [リモートリポジトリの呼び名]
#リモートリポジトリを追加する
git remote add [リモートリポジトリの呼び名] [リモートリポジトリのURL]
合并重置
#マージ
git merge [ブランチ名]
#マージを中断する(コンフリクトが複雑なときとか)
git merge --abort
#リベース(親コミットを変更する。別のブランチの子コミットをポインタする)
git rebase [ブランチ名]
冲突
<<<<<<< HEAD
<h1>hello git1</h1>
=======
<h1>hello git2</h1>
>>>>>>> feature
如果发生冲突,请保留正确的代码并删除不必要的部分进行保存。
Git 的设置
# 設定ファイル閲覧
cat ~/.gitconfig
# 設定の閲覧(オプションでスコープを選択)
git config --list --global
#グローバル情報の設定(--local --systemもある)
git config --global user.name "名前"
git config --global user.email 自分のメアド
# ローカル情報の削除
git config --local --unset user.name
# 直前にコミットされた変更を修正し、作成者をリセットするために使用されます
git commit --amend --reset-author
#エイリアス
#git statusをgit stで使用可能にする
git config --global alias.st status
#grepで行番号も表示する
git config --gloal grep.lineNumber true
克隆
git clone [SSHのURL]
#initブランチから始める
git clone --branch init [SSHのURL]
SSH的公钥
# SSH鍵を作る
ssh-keygen -t rsa -b 4096 -C "コメント"
# -t rsa:鍵の種類(デフォルトでrsaだが確実性のため記載する)
# -b:バイト。鍵の長さ。長いほど強固になる。
# -C:コメント
# SSH鍵がつくられたディレクトリに移動
cd ~/.ssh
#SSH公開鍵を見る
cat id_rsa.pub
#コピーする
cat id_rsa.pub | pbcopy
#生成された鍵をGitHubにペーストして追加する
#done
使用SSH进行克隆
SSH是一种常用的方法
※使用HTTPS和GitHub CLI需要了解GitHub的独特知识。
-
- 生成SSH密钥
使用命令行生成和获取RSA密钥
ssh-keygen -t rsa -b 4096 -C “在这里添加注释”
会询问密钥保存的位置。默认为确定。
设置密码短语
cd ~/.ssh 将密钥移至指定位置
将id_rsa.pub文件内容复制到剪贴板
cat id_rsa.pub | pbcopy
返回GitHub,将密钥粘贴到密钥文本框中注册SSH密钥
https://github.com/settings/ssh/new
获取远程库的URL
打开GitHub上相应的库,复制Code→SSH标签页上的URL
克隆Git
git clone [SSH的URL]
输入SSH密码短语完成!
鍵のありか
ホームディレクトリ直下(~/.ssh)にある
id_rsa.pub:公開鍵。公開しても大丈夫な鍵。
id_rsa:複製厳禁なシークレットな鍵。
学问
GitHub 可以被解释为 “几书”。
可以在互联网上管理远程存储库的网站
分支
对于提交ID的引用(指针)
标题
现在对于正在操作的分支的引用(指针)
合并
快速合并 sù hé
将旧分支赶上新分支。
自动合并
整合分支
会生成一个名为“合并提交”的新提交
舞台
准备提交的更改
在更改工作目录时,只需提取想要提交的部分。
控制台
经常看到的消息
Your branch is ahead of 'origin/main' by 1 commit.
你的分支比’origin/main’向前推进了一个提交。
这表示远程分支有一个未包含的提交。这意味着尽管在本地仓库进行了更改,但这些更改尚未反映到服务器上。要获取远程分支的更改,首先需要拉取这些更改。
請遵守使用時的注意事項。
-
- 極力、異なるブランチで同じファイルを編集しない
コンフリクト防止
pullやmergeする前に変更中の状態をなくしておく(commitやstashをしておく)
pullするときは、pullするブランチに移動してからpullする
detached HEAD にならないようにする
その状態で他のブランチにチェックアウトすると、コミットが消滅する
過去のコミットIDを直接指定してチェックアウトするとなってしまう
请提供一个URL作为参考
みんなのGit講座 – ソフトウェア開発現場で必須となる実践的なGitのスキルとお作法を現役のシニアエンジニアから学ぼう
Git: もう怖くないGit!チーム開発で必要なGitを完全マスター
マンガ・Git カテゴリーの記事一覧 – itstaffing エンジニアスタイル