Git备忘单

主要术语

    • 作業ツリー/ワークツリー/ワーキングツリー:ローカルリポジトリ内でgit管理対象としたファイル群。ユーザの作業場所

 

    • インデックス/ステージングエリア:git addすると作業ツリーの内容がインデックスに保存される。インデックスに保存された内容がコミット対象になる。

 

    • ローカルリポジトリ:自分のコンピュータ上のリポジトリ

 

    • リモートリポジトリ:githubなど、リモートのリポジトリ。originっていう名前を付ける事が多いと思う。

 

    HEAD:直近(最新)のコミット

git命令

准备

在Git中设置全局用户名和电子邮件地址:

git config –global user.name “用户名”
git config –global user.email “电子邮件地址”

设置别名

git config –global alias.ls “log –stat”
git config –global alias.lp “log -p”
git config –global alias.lg “log –graph –pretty=oneline”
git config –global alias.cf ‘commit -m “fixup! c”‘
git config –global alias.conflict “diff –name-only –diff-filter=U”
git config –global alias.s “status”
git config –global alias.d “diff”
git config –global alias.aa “add -A”

将编辑消息的编辑器设置为emacs。

git config --global core.editor emacs

自动合并

在全局配置中,设定 git rebase.autosquash 为 true。

为每个仓库设置用户名和电子邮件地址。

cd 該当のリポジトリ
git config user.name "ユーザ名"
git config user.email "メアド"

cd 到指定的仓库
初始化 Git 仓库

将现有的远程仓库复制到本地仓库(适用于GitHub情况)。

git clone git@github.com:ユーザ名/リポジトリ名.git

如果要将 GitHub 的远程仓库作为 origin 添加到远程仓库中,则执行添加远程仓库的操作。

git remote add origin git@github.com:ユーザ名/リポジトリ名.git

分支操作

创建一个分支并切换到该分支

git checkout -b 分支名称

将分支推送到origin

git push -u origin branch_name

git 分支列表 -a,包括本地和远程分支。

删除已合并的分支

git branch -d 分支名称

删除未合并的分支

git branch -D 分支名称

不同

展示作业树和索引之间的差异。

git diff

显示索引和仓库之间的差异

git diff –cached

显示工作树与HEAD之间的差异。

git diff HEAD 文件名

使用Git命令比较两个分支上的同一文件:

git diff 分支1 分支2 文件名。

显示具有分支之间差异的文件

git diff –stat -name–status 分支1 分支2

显示在两个分支之间存在差异的文件和内容

git diff -name–status 分支1 分支2

仅显示已更改的文件名

git diff –name-only

标签操作 ɡ zuò)

标签列表

git tag

创建标签

git tag -a 标签名 -m ‘说明’

使用指定的提交为标签打上标记

git tag -a 标签名 -m ‘说明’ 提交的ID

使用指定的标签进行检出

git checkout references/tags/标签名称

使用指定的标签从指定分支中检出

git checkout -b 分支名称 refs/tags/标签名称

删除标签

git tag -d 标签名

显示标签的详细信息。

git show 标签名

将标签推送到origin库

git push origin 标签名

记录

显示最近的2个日志

git log -2

显示最近的两个日志和补丁

显示最近3个有更改的文件名及其日志

git log –name-status -3

展示图形

git log –graph –pretty=oneline

不显示合并提交的Git日志–no-merges

显示包含”index”的提交日志。

git log –grep index

显示包含”index”字符的行被添加或删除的提交记录。

git log -S”index”

显示包含字符串”index”的行被添加或删除的提交的差异

git log -S”index” -p

显示特定文件的提交历史

git log -p 文件

查看git日志,出现文件名及其修改状态,不包括合并操作。

git --no-pager log --name-status --no-merges

舞台布置

把修正和新增的文件添加到暂存区。

撤销未提交的暂存文件的修改

使用git reset –hard命令,恢复暂存区未提交的指定文件的更改,并将工作区状态恢复到修改之前的状态。

撤销暂存区中所有未提交的文件更改

回滚最近的提交(文件保持不变)

git reset HEAD^

还未整理

查看过去操作的列表
git reflog

将git重置为HEAD@{1}所处的状态。

回到特定的工作树更改

使用 git checkout 命令来回到特定的文件更改。

撤销工作树中所有文件的更改

删除没有被跟踪的文件

删除未被跟踪的文件,包括在.gitignore中的文件。

git clean -xfd

撤销最近的提交并将文件恢复到原始状态

git reset –hard HEAD^

创建一个撤销之前提交的提交。

使用 git revert 提交ID。

从远程仓库删除已删除的本地分支

git 拉取 –修剪

显示已有更改的文件

git状态

暂存当前的工作目录

git 隐藏

显示当前隐藏的内容

git stash list

获取当前被暂存的内容

显示指定文件的提交历史

使用 git blame 文件名

列出配置設定

git config –list

为PR而创建空提交并推送

git commit –allow-empty -m “wip”
git push origin 分支

自动检测分支的源头并进行合并压缩
※如果是从master创建的分支

git rebase -i –keep-empty –autosquash $(git show-branch –merge-base master HEAD)

修正前一次提交的评论

使用git commit –amend命令

擠壓完之後再推送

git用“–force-with-lease”指令進行推送

显示特定提交时点的文件

git cat-file -p 哈希值:文件路径

从master分支上拉取改动

git拉取master分支上的改动

冲突的文件列表

使用命令:git diff –name-only –diff-filter=U

暂时更改后决定不进行更改。使用 git update-index –assume-unchanged 的目标文件。

我想解除这种状态。

在冲突时,将远程仓库的所有内容应用到本地仓库。

git checkout –theirs .

在冲突发生时,将本地仓库的所有内容应用。

git checkout –ours .

广告
将在 10 秒后关闭
bannerAds