Git命令备忘录

鉴于我常常忘记,这是为自己准备的备忘录。

原理

创建存储库

git init

确认工作区的状态

git status

将阶段化的内容添加到索引中

git add .
git add README.md  # ファイルを指定する場合

提交到代码库中

git commit -m "message"
git commit -am "message"  # ステージング(git add .)とコミットを同時に行う

取消分站

git reset
git reset README.md  # ファイルを指定する場合

放弃提交前的更改。

git checkout .
git checkout README.md  # ファイルを指定する場合

放弃提交后的更改(恢复到任意状态)。

git reset HEAD^ --hard  # 1つ前のコミットまで戻す
git reset HEAD^^^ --hard  # 3つ前のコミットまで戻す
git reset ab32c61 --hard  # コミットID ab32c61… まで戻す

重置的语法如下。

以”git reset”命令为例,只需要一种选项:

git reset [重置的状态] [重置的模式]

重设之前的状态

将第一个提交称为HEAD。接下来加上”^”的数量表示前面有几个提交。换句话说,如果要返回到前3个提交,可以写成HEAD^^^。

另外,还可以指定提交ID。提交ID可以完全指定所有字符,但是只要前几个字符能唯一确定即可。

重置模式

当在Git中进行工作时,我们可以从以下三个选项中选择将工作状态恢复为哪个阶段:“修改”→“暂存”→“提交”。

モードどこまでリセットするか?つまりどうなる?–soft「コミット」だけリセットする。ワークスペースのファイルが変更されたあと、インデックスにステージングされた状態まで戻る。–mixed「ステージング」までリセットする。ワークスペースのファイルは変更されたままだが、インデックスが空の状態になる。–hard「変更」含めすべてリセットする。ワークスペースのファイルがすべて変更前まで戻る。

管理标签

git tag tag001  # HEADにタグtag001をつける
git tag tag001 ab32c61  # 特定のコミットにtag001をつける
git tag  # タグを確認する
git show tag001  # tag001の詳細を確認する
git tag -d tag001  # tag001を削除する

查看提交记录

git log
git log --oneline  # 1コミット1行で確認したい場合
git log --all  # 他のブランチも確認したい場合
git log --all --graph  # 他のブランチとの関係をツリーで確認したい場合

分支关系

创建一个分支

git branch develop  # HEADからブランチ作成(ブランチは切り替えない)
git checkout -b develop  # HEADからブランチ作成してブランチ切り替え
git checkout ab32c61 -b develop  # 特定のコミットからブランチ作成してブランチ切り替え

获取分支的列表

git branch

切换分支

git checkout develop

合并分支

git checkout master
git merge develop --no-edit
git merge develop --no-edit --no-ff  # ファストフォワードなしでマージ
快速前进是指在合并时,由于只在一个分支上进行作业,导致不创建合并提交的合并方式。即使在这种情况下,如果希望明确创建合并提交,则可以使用–no-ff选项。

删除分支

git branch -d develop

更改分支名称

git branch -m master main

远程关系

管理远程存储库

git remote add origin https://github/com/[ユーザ名]/[リポジトリ名].git  # 追加する場合
git remote rm origin  # 削除する場合
git remote  # 一覧を確認する場合

将文件推送到远程仓库。

git push origin main  # originリモートにmainブランチをプッシュ
git push origin tag001  # tag001の情報をリモートにプッシュ
git push origin --tags  # リモートにないタグを一斉送信
git push --set-upstream origin main  # 現在のブランチにアップストリームを設定
git push  # アップストリームの設定に従ってプッシュ
仅使用git push指令无法将标签信息推送到远程。需要使用类似git push origin –tags的指令来单独发送标签信息。

克隆远程代码库

git clone https://github/com/[ユーザ名]/[リポジトリ名].git
git clone https://github/com/[ユーザ名]/[リポジトリ名].git [ディレクトリ名]  # クローン先ディレクトリを指定する場合

获取与远程仓库的差异性

git fetch
git log --oneline  # 変更がlogで確認できる

将远程仓库的更改更新到本地

git pull origin main  # originリポジトリのmainブランチを取得
pull命令是一种同时执行fetch和merge的命令。只要理解了这一本质,通常只需执行pull就足够了。

撤销对远程仓库的提交

git revert HEAD --hard  # 最新のコミットを取り消す場合
在本地撤销提交使用reset命令是可行的,但要撤销远程提交并不那么容易。原因是在对提交进行撤销之前,可能会有其他用户已经拉取了想要撤销的提交。因此,revert实际上不是撤销了提交,而是创建了一个新的提交,使得先前的提交看起来好像从未存在过一样。
广告
将在 10 秒后关闭
bannerAds