Git常用命令大全

git add

(1) git add [File1] [File2] : 添加一个或多个文件到暂存区
(2) git add -u : 添加所有已跟踪文件到暂存区, 不添加未跟踪文件
(3) git add . : 添加所有已跟踪和未跟踪文件到暂存区, 之前是不能添加删除文件, 但是现在好像可以
(4) git add -A : 添加所有已跟踪和未跟踪文件到暂存区

git commit

(1) git commit : 进入vim编辑模式, 书写commit message退出保存后会提交暂存区的文件修改到Git库
(2) git commit -a : 直接把文件修改从工作目录提交到Git库, 跳过git add的阶段, 但是注意只针对已跟踪文件, 对于未跟踪文件必须通过git add手动加入到暂存区
(3) git commit -m “message” : 不进入vim模式, 直接写好commit message信息进行提交
(4) git commit --amend : 对最新一次提交进行修改内容的补充, 比如可以修改commit message信息或将暂存区的修改并入到最新的提交中

git diff

(1) git diff : 比较工作目录和暂存区的文件差别
(2) git diff --cached/staged : 比较暂存区和最新一次提交记录Git库的文件差别
(3) git diff HEAD~X : 比较工作目录和暂存区与当前第X+1提交记录Git库的文件差别
(4) git diff SHA1 SHA2 : 比较两笔提交的文件差别
(5) git diff branch1 branch2 : 比较两个分支的所有文件差别
(6) git diff HEAD~X HEAD~Y : 比较第X+1次提交和第Y+1次提交之间的文件差别
(7) git diff > 文件名 : 可以将当前文件差别记录到文件中

git status

(1)基本作用 : 查看所有文件修改的当前状态
(2)Changes not staged for commit: 表示当前已跟踪文件被修改, 但是修改只存在于工作目录, 还没有加到暂存区, 需要通过git add命令加入到暂存区
(3)Untracked files: 表示当前工作目录出现了新的文件或新删除的文件, 还没有被git跟踪
(4)Changes to be committed: 表示当前已跟踪文件的修改已经存在于暂存区, 但是还未提交到Git库, 需要使用git commit命令进行提交
(5)nothing to commit, working tree clean: 表示当前没有任何文件修改, 已经全部存在于Git库中

git show

(1) git show : 显示当前分支最新提交以及相应的修改内容
(2) git show SHA1 / HEAD~X : 显示指定的某次提交以及相应的修改内容

git log

(1) git log : 列出所有提交历史记录, 最近的排在最上方, 显示提交对象的哈希值SHA1, 作者, 提交日期和提交说明, 可以按下/键在后面输入关键信息, 再按下回车键进行搜索, 按N跳转到下一个匹配位置, 按q键退出git log
(2) git log -n : 筛选出最新的n条历史提交记录
(3) git log -p : 显示所有历史提交记录的基本信息以及详细的修改内容
(4) git log – 文件名 : 显示有关该文件的所有提交记录
(5) git log SHA1 : 跳转到指定的提交记录
(6) git log --author=“名字” : 按作者搜索相关提交记录
(7) git log --after/before=“日期” : 搜索指定日期前后的历史提交记录
(8) git log --grep=“信息” : 按照commit信息搜索相关的历史提交记录, 可以加-i忽略大小写, 想同时使用–grep和–author,必须在附加一个–all-match参数

git branch

(1) git branch : 显示当前所有本地分支
(2) git branch -r : 显示当前所有远程分支
(3) git branch -a : 显示当前所有本地和远程分支
(4) git branch 分支名 : 创建一个新的分支
(5) git branch -d 分支名 : 删除一个指定的分支, 注意分支如果有修改未合并到主分支, 无法删除
(6) git branch --merged : 一般在要合入的分支使用, 将其他本地分支与当前分支比较, 如果有已经合并到当前分支的分支会显示出来, 如果没有只显示当前分支
(7) git branch --no-merged: 一般在要合入的分支使用, 将其他本地分支与当前分支比较, 如果有未合并到当前分支的分支会显示出来
(8) git branch -v : 显示当前所有本地分支以及对应的最新一次提交

git reset

(1) git reset HEAD 文件名 : 把指定的文件修改从暂存区回退到工作目录, 省略默认参数–mixed
(2) git reset HEAD : 把所有暂存区的文件修改从暂存区回退到工作目录
(3) git reset HEAD~X / HEAD^… : 把第X+1次前的提交记录以及暂存区的文件修改全回退到工作目录
(4) git reset --soft HEAD~X / HEAD^… : 把第X+1次前的提交记录的文件修改全回退到暂存区
(5) git reset --hard HEAD~X / HEAD^… : 把第X+1次前的提交记录以及暂存区和工作目录的文件修改全部清除, 保持当前状态为第X+1次的提交记录状态

git rm

(1) rm -rf 文件名: 只是从工作目录删除某个文件, 不能从暂存区或Git库中删除文件的记录
(2) git rm 文件名: 将文件从暂存区和工作目录中删除, 但是可通过git reset命令从Git库中恢复文件
(3) git rm --cached 文件名 : 将文件从暂存区中删除, 但是保留工作目录中的文件并且状态变为未跟踪
(4) git rm -f 文件名: 当要删除的文件有修改保留在暂存区时, git rm是无法删除文件的, 必须加-f

git checkout

(1) git checkout – filename : 将工作目录中的文件修改删除撤销
(2) git checkout branch : 切换到指定分支
(3) git checkout -b branch : 如果分支不存在, 会创建新的分支并自动切换到该分支

git merge

切换到主分支或要合入的分支上, 执行git merge branch将指定的分支合入到当前分支

git pull

git pull <远程主机名> <远程分支名>:<本地分支名> 将远程分支的代码拉到本地与本地指定分支合并, 如果远程分支名和本地分支名相同, 那么可以省略:以及:后的内容

git init

初始化当前目录为git仓库, 一般会出现.git文件夹

git format-patch

把已提交到Git库中的patch打成标准命名格式的补丁
(1) git format-patch -1 / HEAD^ : 把最后一次提交内容打成补丁
(2) git format-patch -2 / HEAD^^ : 把最后两次提交内容打成两个补丁
(3) git format-patch SHA1 : 把SHA1这笔提交之前的提交打成补丁
(4) git format-patch SHA1 -1 : 把SHA1这笔提交打成补丁
(5) git format-patch SHA1 SHA2 : 把SHA1和SHA2两笔之间的提交打成补丁
还原补丁的操作:
(1)git apply/am patch
(2)patch -p1 < patch
注意: 还原后的patch如果想提交到同一笔上要注意修改change-id为相同的

git apply

把补丁patch打入到代码中
(1)git apply --check xxx.patch: 检查代码中打入补丁是否有问题, 如果出现error: xxxxx: patch does not apply
这种一般会是补丁和代码冲突, 然后不会将补丁打入到代码里
(2)git apply --reject xxx.patch: 强制将补丁打入代码不管是否有冲突, 如果有冲突会生成.rej文件, 需要根据它来解决冲突
(3)git apply xxx.patch: 将patch打入到代码里, 如果有冲突也会报错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值