git status # 查询当前编辑环境的文修改情况
git add [file1] [file2] ... # 添加一个或多个文件到暂存区 git add [dir] # 添加指定目录到暂存区 git add . # 添加当前根目录下的所有文件到暂存区
git restore --staged # 撤销指定文件的add
git commit # 将暂存区内容提交到本地仓库,bash会弹出vim的编辑框,用来输入附带信息,然后再输入:wq退出编辑器 git commit -m [message] # 将暂存区内容提交到本地仓库,并附带信息(用于解释本次提交的内容),message要用双引号括起来 git commit [file1] [file2] ... -m [message] # 将暂存区指定文件添加到本地仓库 git commit -a # 忽略 git add 步骤,直接将修改的文件(无论是否暂存)都提交到仓库 # -m:标记下一串字符是注释 # -a: 忽略 git add 步骤,直接将修改的文件提交到仓库
git reset --soft HEAD~1 # 撤销上次提交,文件回滚到暂存区 git reset --hard HEAD~1 # 撤销上次提交,同时也把同期的 add 也撤销了,也就是恢复成改动前内容 # HEAD~x 表示撤回递归层数,1表示撤回上一次commit,2表示前两次都撤回
git branch # 查看所有分支名,并且正使用的分支前会带一个 * 号 git branch -vv # 查看当前分支名并显示远程上游分支(上游分支介绍在 推送 栏目的第三条指令) git branch <分支名> # 创建一个新的本地分支(还未commit过的话无法通过此方法创建新分支,需加上 -m 参数) git branch -m <分支名> # 创建一个新的本地分支作为主分支,并切换到此分支 git branch -d <分支名> # 删除本地分支 # 当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支不需要多个目录。 git checkout <分支名> # 切换到本地分支 git checkout -b <分支名> # 切换到本地分支,如果分支不存在则创建
git remote # 查看所有远程仓库 git remote add <远程主机名> # 绑定远程仓库,命个别名,此后在本地操作的<远程主机名>都叫这个 # 例子:git remote add origin https:# gitee.com/Roland665/ElderlyCare_Guet.git git remote get-url xxx # 查看xxx仓库的远程地址 git remote remove xxx # 移除对xxx仓库的链接绑定
# 如果本地分支名和远程分支名相同,则可以省略 :<远程分支名>,比如第二条指令开始 git push <远程主机名> <本地分支名>:<远程分支名> # 将本地的分支版本上传到远程并合并 git push --force <远程主机名> <分支名> # 强制推送本地版本到远程仓库 git push -u <远程主机名> <分支名> # 将本地的分支版本上传到远程并合并,并且将此分支作为‘上游分支’,即之后可以直接使用 git push 而不带任何参数来实现推送
git fetch
是一个安全的操作,不会影响当前的工作环境,它只是更新本地的远程跟踪分支。用于从远程仓库获取最新的更改但不合并到当前分支,之后可以使用git log
或git diff
查看更新的详细信息
git fetch <远程主机名> # 将远程仓库的所有分支都更新到本地的远程跟踪分支 git fetch <远程主机名> <分支名> # 拉取指定远程分支
git log
用于查看提交 (commit) 记录
git log # 显示所有的提交记录,包含哈希值、提交者、提交日期、提交说明(注释) git log -1 # 显示最近的一次提交,-2表示最近的两次 git log <分支名A>..<分支名B> # 显示 分支名A 中不存在但在 分支名B 中的提交(如果要看的是远程分支,格式是<远程主机名/分支名>), 可以用HEAD表示当前分支(假如当前本地分支叫master,那么指令中HEAD等效master) # 常用参数 --pretty 参数允许你自定义输出的格式。例如,--pretty=oneline 会将每个提交显示为一行,只包含提交哈希值和提交说明。 --graph 参数可以显示一个 ASCII 图形化的提交历史,这样你可以更直观地看到分支和合并的情况。 -- 参数可以搜索与指定文件相关的提交。例如,git log -- path/to/file.txt 会显示所有修改过 file.txt 的提交。
git diff
用于比较不同提交、工作区与暂存区之间的差异
git diff # 比较工作区与暂存区的差异,即显示自上次 git add 以来,在工作目录中对文件所做的未暂存的更改。 git diff --cached # 比较暂存区与本地库中最近一次提交的内容之间的差异 git diff --staged # 同上 git diff <分支名> # 比较工作区与<分支名>的最新的一次提交的差异 git diff HEAD # 比较工作区与当前 HEAD 指向的提交(最新的一次提交)的差异(上一条指令的一种使用方式) git diff <分支名1>..<分支名2> # 比较<分支名1>与<分支名2>的最新的一次提交的差异 git diff HEAD..origin/master # 当前 HEAD 指向的提交(最新的一次提交)与远程跟踪分支的最新的一次提交的差异
git merge
用于合并指定分支的更改到当前分支,默认合并策略会将远程修改、删除的内容同步修改到本地,本地新增的内容保持新增状态。合并前需要先提交本地的更改。
git merge # 将远端跟踪分支的最新修改合并到本地 git merge <分支名> # 将指定 [分支名] 与当前分支合并
等效连续执行 fetch 和 merge
git pull # 将远端分支的最新修改同步到本地