GIT命令荟萃

本文详细介绍了Git中的branch操作,包括创建、删除、查看分支状态、切换分支、合并、推送与拉取、commit和rebase的使用,以及.gitignore文件的规则。覆盖了Git版本控制系统的核心功能。
摘要由CSDN通过智能技术生成

GIT branch

本文可以作为手册查看branch相关命令

1. 创建
# 在当前commit对象上创建分支
git branch new_branch_name
# 在当前所在的提交对象上创建一个指针,并切换上去
git checkout -b new_branch_name
# 上述命令等价于
git branch branch
git checkout branch
2. 删除
# 删除本地仓库分支
git branch -d branch_name
# 删除远程仓库分支
git push remote_name --delete remote_branch
3. 查看
# 查看所有分支
git branch 
# 查看每一个分支的最后一次提交
git branch -v
# 显示本分支已经合并进来的分支
git branch --merged
# 显示本分支尚未合并进来的分支
git branch --no-merged
# 查看本地跟踪分支,显示信息每一个分支正在跟踪哪个远程分支与本地分支是否是领先、落后
git branch -vv
4.切换分支
# 切换到一个已存在的分支,即head指针指向branch_name所指向的commit
git checkout branch_name
5.合并分支
# 合并分支,将branch分支合并到当前分支,如果branch分支是当前分支直接后继,即可触发快速合并(Fast-forward)
git merge branch
# 快速合并表示两个分支之间不存在冲突,若冲突发生,则会进行“三方合并”
# 冲突:不同的分支中,对同一个文件的同一个部分进行了不同的修改
# 三方合并:寻找两个分支的共同祖先commit,其后的commit对象进行合并

# 如果发生冲突,解决办法
# 合并过程中冲突发生会停止合并,使用git status查看冲突文件,手动解决冲突(选择哪个分支的内容)
# 可视化解决冲突
git mergetool
6.推送分支
# 切换到一个已存在的分支,即head指针指向branch_name所指向的commit
git remote add remotename url
# 推送 将本地分支推送到指定的服务器上面的指定分支
git push remote_name local_branch:remote_branch
7. 拉取分支
# 拉取远程仓库分支
# 本地分支不存在
# [常用]
git checkout -b local_branch remote_name/remote_branch
git checkout --track origin/serverfix
git checkout remote_branch
# 本地分支存在
git branch -u remote_name/remote_branch

# 与远程仓库同步数据;从服务器上抓取本地没有的数据;只会获取数据然后让你自己合并
git fetch remote_name
# 与远程仓库同步数据,并进行合并
git pull remote_name
# 等价于
git fetch remote_name
git merge branch_name

GIT COMMIT

# 修改当前分支最近一次提交的提交信息
git commit --amend
# 修改特定commit的提交信息
# 特定commit的父commit,然后对目标commit指向reword命令,wq,修改信息即可
git rebase -i parent_commit_id

在这里插入图片描述

在这里插入图片描述

# 压缩commit
git rebase -i parent_commit
squash commit1
squash commit2
squash commit3

GIT LOG

git log 用于查询提交信息,主要记录一些参数,以及如何过滤日志

git log --oneline
git log --graph
# 指定log输出格式
git log --pretty=format:"%h - %an, %ar : %s"
  • git log --pretty=format:“”
optionscomment
%H提交的完整哈希值
%h提交的简写哈希值
%T树的完整哈希值
%t树的简写哈希值
%P父提交的完整哈希值
%p父提交的简写哈希值
%an作者名字
%ae作者的电子邮件地址
%ad作者修订日期(可以用 --date=选项 来定制格式)
%ar作者修订日期,按多久以前的方式显示
%cn提交者的名字
%ce提交者的电子邮件地址
%cd提交日期
%H提交的完整哈希值
%cr提交日期(距今多长时间)
%s提交说明
  • 多个参数介绍
    在这里插入图片描述

GIT 其他

#  移动、重命名文件
git mv file1 file2
# 移除文件
git rm filename

查看区别

# 查看工作区与暂存区 同一文件区别
git diff
# 查看暂存区与最后一次提交的文件差异
git diff --staged/ --cached

.gitignore

文件 .gitignore 的格式规范如下:

  • 所有空行或者以 # 开头的行都会被 Git 忽略。

  • 可以使用标准的 正则表达式 模式匹配,它会递归地应用在整个工作区中。

  • 匹配模式可以以(/)开头防止递归。

  • 匹配模式可以以(/)结尾指定目录。

  • 要忽略指定模式以外的文件或目录,可以在模式前加上叹号(!)取反。

# 忽略所有的 .a 文件
*.a

# 但跟踪所有的 lib.a,即便你在前面忽略了 .a 文件
!lib.a

# 只忽略当前目录下的 TODO 文件,而不忽略 subdir/TODO
/TODO

# 忽略任何目录下名为 build 的文件夹
build/

# 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
doc/*.txt

# 忽略 doc/ 目录及其所有子目录下的 .pdf 文件
doc/**/*.pdf
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卫生纸不够用

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值