Git的备忘单
Git的速查表汇总
我会总结常用的Git命令和备忘录。
作为自我输出的一部分,我将创建一个Git速查表。
【如果有需要,我会持续更新。】
首先是非常基本的。
设置关系
# グローバルの設定編集
$ git config --global --edit
# 設定確認
$ git config --list
# もしくはこれ
$ cat ~/.gitconfig
建立仓库
# リポジトリの新規作成(.gitが作成される)
$ git init
# gitリポジトリのクローンを作成
$ git clone <リポジトリのURL>
添加到舞台上
git add 是将修改添加到暂存区中。
为提交做准备的修改操作。
生成压缩文件并将信息映射到索引文件中。
# 変更をステージに追加する
$ git add <ファイル名>
$ git add <ディレクトリ名>
$ git add .
提交
将更改记录到存储库 = 提交。
根据索引文件生成树文件和创建提交文件。
# コミットする
$ git commit
$ git commit -m "メッセージ"
# 変更内容も確認できる
$ git commit -v
写提交信息的方式。
在表达变更内容的要点和变更理由时,原则上需要遵循以下几点:
简单描述时,可将其写在一行内。
正式描述时,需要严谨表达,以符合要求。
1行目:変更内容の要約
2行目:空行
3行目:変更した理由
在提交或者暂存之前,确认了做了哪些修改。
确认变更的差异。以difference缩略。
# git addする前の変更分(ワークツリーとステージの間の変更差分)
$ git diff
$ git diff <ファイル名>
# git addした後の変更分(ステージとリポジトリの変更差分)
$ git diff --staged
查看更改历史
# 履歴の確認
$ git log
# 1行で見やすく表示
$ git log --oneline
# 特定のファイルの変更差分を表示する
$ git log -p <ファイル名>
# 表示するコミットの数を制限する
$ git log -n <表示する数>
记录文件删除
不使用git add。
缩写为remove。
# gitの記録から(すでにリポジトリにあるファイル)も消えるし、ワークツリーからも消す方法
# ファイルごと削除
$ git rm <ファイル名>
# ディレクトリごと削除
$ git rm -r <ディレクトリ名>
# ワークツリーにはファイルを残したい時
$ git rm --cached <ファイル名>
记录文件的移动
# ファイルの移動を記録する
$ git mv <旧ファイル><新ファイル>
# 以下のコマンドと同じ
$ mv <旧ファイル><新ファイル>
$ git rm <旧ファイル>
$ git add <新ファイル>
新增远程仓库
$ git remote add <リモート名> <リモートのURL>
# originというショートカットで、リモートリポジトリを登録する
# 今後は、originという名前でpushやpullが行える
$ git remote add origin https://github.com/user/〇〇
显示为远程
$ git remote
# 対応するURLも表示させるのであれば
$ git remote -v
远程修改或删除
当你想要更改远程名称或者不再需要使用远程时
# リモート名の変更
$ git remote rename <旧リモート名><新リモート名>
# リモートの削除
$ git remote rm <リモート名>
将代码推送到远程仓库。
$ git push <リモートリポジトリ名><ブランチ名>
# 例えば
# ローカルのmasterブランチを、登録したリモートリポジトリ名のoriginにpushする
$ git push origin master
# git push -uコマンドについて
# 次回以降 git pushだけで勝手にorigin masterでpushしてくれる
不想进行版本管理.gitignore
• 記录了密码等机密信息的文件(需谨慎处理AWS的密码等相关信息)
• 在团队开发中不需要的东西(如自动生成的文件和缓存)
.gitignore文件本身可以按照常规方法创建
.gitignore的编写方式
# #はコメント
# 指定したファイルを除外
index.html
# ルートディレクトリを指定
/root.html
# ディレクトリ以下を除外
dir/
# ワイルドカード
# 例:一つ階層を潜った任意のcssファイル
/*/*.css
撤销文件的更改方法。
(Note: The translation provided is in Simplified Chinese)
将工作树的更改恢复到之前的状态
通过从工作树获取舞台信息,将其恢复为原始状态。
# ブランチ名とファイル名がかぶった時に、どちらをしているのかGitがわからなくなるから【--】を使う
$ git checkout -- <ファイル名>
$ git checkout -- <ディレクトリ名>
# 全変更を取り消す
$ git checkout -- .
取消已进行的阶段更改
通过获取存储库的信息并通过覆盖变更部分来撤销舞台的修改。由于HEAD指向最新的提交,所以使用最新的提交信息进行重置。
$ git reset HEAD <ファイル名>
$ git reset HEAD <ディレクトリ名>
# 全変更を取り消す(たぶん使う機会はそうそうない)
$ git reset HEAD .
需要注意的是,由于只是从舞台上取消指定的更改,所以不会影响工作区。
换句话说,如果要同时撤消工作区的更改,需要进行以下操作。
$ git reset HEAD <ファイル名>
$ git reset checkout -- <ファイル名>
将最近的提交视为没有发生过。
将编辑内容全部视作不存在
$ git reset --hard HEAD^
修改/覆盖最近的提交
修订的含义:进行修改/改善。
$ git commit --amend
注意事项:不要取消已经推送到远程仓库的提交!
使用这个原理,可以在输入上述命令时修改前一个阶段的信息。
这样一来,不仅可以改变提交信息,还可以修改提交的内容。简言之
# コミットする
$ git commmit -m "htmlを変更しました"
# コミット内容を間違えた!となったとする
# ワークツリーにて該当箇所を変更して、git addで、ステージにあげる
# ステージの状態が修正されたら、ここで
$ git commit --amend
# コミットの内容を修正できる
修改提交信息
和上者一起
$ git commit --amend
取消提交
并非将提交视作未发生,而是留下相反的提交记录。
$ git revert <ハッシュ値>
从远程获取信息。
获取(フェッチ)
从本地获取信息。
$ git fetch <リモート名>
# 引っ張ってきたブランチは以下で確認
$ git branch -a
合并
# 現在のローカルのブランチにマージする
# スラッシュ(/)忘れるな
$ git merge <リモート名/引っ張ってきたリモートのブランチ名>
拉(动作)
在当前分支pull并且fetch和merge一起进行,需要注意因为它会获取到已经pull到当前分支的信息。
$ git pull <リモート名><リモートのブランチ名>
#よく使うのは
$ git pull origin master
那么,fetch和pull要如何区别使用呢?
我个人认为使用fetch更加可靠。
因为使用pull时会将拉取的信息直接合并到当前分支,如果没有意识到可能会误将其合并到不打算的分支中。
当不小心在另一个分支时要格外注意。
冲突相关
如果发生冲突
# まず状況確認
$ git status
# そしたら以下みたいな表示
both modified: <ファイル名>
# ここに書かれているファイルのコンフリクトを解消する
# 解消方法:最終的な形を作って、必要ないものを削除
# その後ステージに上げて、再コミット
# コミットメッセージの詳細に"コンフリクトの解消"等を書いておく
尽量避免发生冲突的操作规则
-
- 複数人で同じファイルを変更しない
-
- pullやmerge前に変更中の状態をなくす
commitやstashしておく
pullする際は、pullするブランチに移動してからpull
(心構え)コンフリクトしても慌てない
状況確認して、コンフリクトを解消して、ステージに上げて、コミット
分支相关 zhī
如何切分支
# ブランチを切って、チェックアウトも同時に行う
$ git checkout -b <新しく作るブランチ名>
更改分支名称
# ブランチ名の変更
# ブランチ名を変更したいブランチに移動してから行う
$ git branch -m <新しいブランチ名>
删除分支
# ブランチの削除
# materにマージされていない変更が残っている場合、削除されない
$ git branch -d <削除したいブランチ名>
# 強制的に消すには
$ git branch -D <削除したいブランチ名>
远程分支
指向远程分支状态的指针
# リモートブランチの参照は以下
# (/)スラッシュを使う
<リモート>/<ブランチ>
重构相关
重写以上内容的中文版本:
重新基础的流程
# 親コミットが同じfeatureとmasterがある場合、
# featureの親コミットをmasterとしてmergeしたい時
$ git checkout feature
$ git rebase master
$ git checkout master
$ git merge feature
请提供更多上下文。”プルのリベース型” 可以有不同的翻译,以下是一种可能的翻译:
拉动的重组模式
# プルする時にリベースで情報を取得する
$ git pull --rebase <リモート名><ブランチ名>
# 例えば
$ git pull --rebase origin master
以下是「スタッシュ相关」的中文释义:
– “致力于收集、存储和管理潮流文化产品的相关事务”
将作业暂时搁置
$ git stash
$ git stash save
# 一覧で確認
$ git stash list
恢复Stash
# 最新の作業を復元する
$ git stash apply
# ステージの状況も復元する
$ git stash apply --index
# 特定の作業を復元する
$ git stash apply [スタッシュ名]
删除存储
# 最新の作業を削除する
$ git stash drop
# 特定の作業を削除する
$ git stash drop [スタッシュ名]
# 全作業の削除
$ git stash clear