Git 常用记录

Git 常用记录

git图解

常用命令

添加相关

git add . 当前目录添加所有文件(.)

git add README.md Hello.java 添加指定文件(README.md Hello.java)

git add *.txt 当前目录添加所有 txt 文件(*.txt)

git add -f a.log 可以添加被忽略的文件(a.log)

提交相关

git commit -m "注释" 将暂存区文件提交到存储库

git commit -am "注释"将工作数中文件提交到存储库,减少git add

git commit --amend 修改上一条提交信息

日志相关

git log 显示提交日志信息

git log --pretty=short 只显示提交信息的第一行

git log README.md 显示指定目录/文件的日志(README.md)

git log -p 显示文件的改动

git log -p README.md 指定文件(README.md)的改动

git log --graph 以图表形式查看分支

git reflog 查看当前仓库所有的操作日志

比较相关

git diff 查看工作树和暂存区之间的差别

git diff HEAD 查看工作树和最新提交的差别

git diff README.md 指定文件(README.md)的差别

git diff master test 在两个分支之间(master test)最新的提交比较

git diff test 查看当前目录和另外一个分支(test)的差别

git diff SHA1 SHA2 比较两个历史版本之间的差异

分支相关

git branch 只列出本地现有的分支

git branch -r 只列出远程分支

git branch -a 列出远程和本地所有分支

git branch test 创建新分支(test)

git branch -d test 删除(test)分支

git branch -m test test1 修改分支名称(test -> test1)

git branch --set-upstream-to=origin/test test 远程分支关联,在执行git pull, git push操作时就不需要指定对应的远程分支(本地test -> 远程origin/test)

git checkout <分支名称> 切换到已存在分支

git checkout -b <分支名称> 切换并创建分支

git checkout -b test

等价于

git branch test

git checkout test

git checkout <tag> 在当前分支上取出 tag的版本

git checkout master file 放弃当前对文件file的修改

git checkout -b test origin/test 从一个分支(origin/test)迁出另一个分支(test)

名称相同时,等价于 git checkout origin/test

合并相关

git merge test 快进式合并,将 test 分支合并到当前分支(只是指针移动,不推荐)

git merge --no-ff test 合并分支(例如:在master新建个历史进行合并,推荐)

标签相关

git tag 列出所有标签

git tag -l 'v1.0.*' 列出1.0相关的标签

git tag -a v1.0.0 给当前仓库增加标签(v1.0.0),弹出编辑器增加说明

git tag -a v1.0.0 -m '注释' 给当前仓库增加标签(v1.0.0),并指定注释

git show v1.0.0 查看相应标签信息(v1.0.0)

git tag -d v1.0.0 删除标签(v1.0.0)

标签需要额外推送

git push origin v1.0.0 推送一个标签

git push origin --tags 推送所有标签

git push origin :<tag> 删除远程标签

下载相关

git pull origin test1:testorigin主机的test1分支和本地test分支合并

git pull origin testorigin主机的test分支和当前分支合并

推送相关

git push origin master 将本地的master分支推送到origin主机的master分支,不存在就会新建分支

删除origin主机的master分支

git push origin :master

等同于

git push origin --delete master

git push -u origin master与多个主机存在追踪关系时,-u来指定默认主机,后面就可以不加任何参数使用git push

管理仓库

git remote 列出已存在的远程仓库

git remote -v 列出仓库详细信息

git remote add <仓库名> <仓库地址> 添加一个远程仓库

储藏相关

git stash 储藏所有未提交的修改(包括暂存的和非暂存的),不推荐

git stash save "注释" 储藏所有未提交的修改(包括暂存的和非暂存的),推荐

git stash pop 从堆栈中删除第一个stash放置到当前工作目录中

git stash apply [n] 默认从堆栈中将第一个stash放置到当前工作目录中,不删除;n代表第几个(0,1)

git stash drop [n] 移除stash;n代表第几个(0,1)

git stash list 查看现有stash

git stash clear 删除所有缓存的stash

git stash show [-p n] 查看指定stash的diff;n代表第几个(0,1)

其他常用命令

# 克隆项目
git clone <url>
# 初始化
git init
# 查看状态
git status
# 回滚
git reset --hard <hash值>
# 从工作区和索引中删除文件
git rm <file>
# 从工作区和索引中删除文件夹
git rm -r <folder>
# 移动或重命名文件
git mv <source> <target>
# 获取最新数据
git fetch upstream <原仓库地址> 
# 压缩历史 更新提交的两次记录
git rebase -i HEAD~2 

常见情景

切换分支操作,又不能放弃现有操作 / 本地更改与上游更改相冲突,拒绝覆盖

# 查看状态
git status
# 储藏所有未提交的修改(包括暂存的和非暂存的)
git stash save "注释"
# 查看存在更改的列表
git stash list

# 切换到其他分支操作
# 操作结束,返回分支

# 查看存在更改的列表
git stash list
# 从堆栈中将第一个stash放置到当前工作目录中,从堆栈中删除/不删除
git stash pop/apply
# 查看状态
git status

Github Flow 开发流程

Github Flow 开发流程

  1. 从开发版的分支(develop)创建工作分支(feature branches),进行功能的实现或修正

  2. 工作分支(feature branches)的修改结束后,与开发版的分支(develop)进行合并

  3. 重复上述1和2,不断实现功能直至可以发布

  4. 创建用于发布的分支(release branches),处理发布的各项工作

  5. 发布工作完成后与master分支合并,打上版本标签(Tag)进行发布

  6. 如果发布的软件出现BUG,以打了标签的版本为基础进行修正(hotfixes)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值