Git 备忘录
2024-10-02 01:15:34
整理了一下工作中常用的 Git 操作,持续更新中...
merge单个文件
例如 B分支想要合并A分支的某个文件
首先,我们切换到B分支 git checkout branch B
之后,我们checkout A 分支的a文件,git checkout --patch A a路径
最后,弹出修改确认提示:
Apply this hunk to index and worktree [y,n,q,a,d,/,K,g,e,?]?
在弹出的都选 y 即可。
如果不想应用更改的,在弹出的都选 n 即可。
最后提交代码完成更新合并同步。
撤销上一次操作
git reset --hard HEAD^
HEAD^的意思是上一个版本,也可以写成HEAD~1
如果你进行了2次commit,想都撤回,可以使用HEAD~2
参数:
--mixed
不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
--soft
不删除工作空间改动代码,撤销commit,不撤销git add .
--hard
删除工作空间改动代码,撤销commit,撤销git add .
注意完成这个操作后,就恢复到了上一次的commit状态。
撤销 commit 操作,但保留代码
git reset --soft HEAD^
仅仅是撤回commit操作,代码仍然保留
查看文件修改
git log --name-status 每次修改的文件列表, 显示状态
git log --name-only 每次修改的文件列表
git log --stat 每次修改的文件列表, 及文件修改的统计
git whatchanged 每次修改的文件列表
git whatchanged --stat 每次修改的文件列表, 及文件修改的统计
git show 显示最后一次的文件改变的具体内容
git show -5 显示最后 5 次的文件改变的具体内容
git show commitid 显示某个 commitid 改变的具体内容
给本地和远程仓库重命名
1.重命名本地分支
git branch -m new-name #如果当前在要重命名的分支
git branch -m old-name new-name #如果当前不在要重命名的分支
2.删除远程旧名称分支并且push新名称分支
git push origin :old-name new-name
3.关联新名称的本地分支和远程分支
git push origin -u new-name
修改远程仓库地址
git remote set-url origin [url]
本地分支关联远程仓库上游分支
git branch --set-upstream-to=origin/remote_branch your_branch
分支重命名
1. 本地分支重命名(还没有推送到远程)
git branch -m oldName newName
2. 远程分支重命名(已经推送远程-假设本地分支和远程对应分支名称相同)
a. 重命名远程分支对应的本地分支
git branch -m oldName newName
b. 删除远程分支
git push --delete origin oldName
c. 上传新命名的本地分支
git push origin newName
d. 把修改后的本地分支与远程分支关联
git branch --set-upstream-to origin/newName
commit 规范
feat:新功能(feature)
fix:修补bug
docs:文档(documentation)
style: 格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
test:增加测试
chore:构建过程或辅助工具的变动
合并commit
合并commit的简便方法,就是先撤销过去5个commit,然后再建一个新的。
$ git reset HEAD~5
$ git add .
$ git commit -am "Here's the bug fix that closes #28"
$ git push --force
git tag
git tag <name>就可以打一个新标签:
用命令git tag查看所有标签:
默认标签是打在最新提交的commit上的
也可以找到历史提交的commit id,然后打上
还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:
git tag -a v0.1 -m "version 0.1 released" 1094adb
用命令git show <tagname>可以看到说明文字:
修改 commit 注释内容
顺便说一下,如果commit注释写错了,只是想改一下注释,只需要:
git commit --amend
此时会进入默认vim编辑器,修改注释完毕后保存就好了
Git基本常用命令
mkdir XX
|
创建一个空目录 XX指目录名
|
pwd
|
显示当前目录的路径
|
git init
|
把当前的目录变成可以管理的git仓库,生成隐藏.git文件
|
git diff XX
|
查看XX文件修改了哪些内容
|
git reset
|
–hard HEAD^ 或者 git reset –hard HEAD~ 回退到上一个版本 (如果想回退到100个版本,使用git reset –hard HEAD~100 )
|
cat XX
|
查看XX文件内容
|
git reflog
|
查看历史记录的版本号id
|
git checkout — XX
|
把XX文件在工作区的修改全部撤销
|
git remote add origin https://aaa
|
关联一个远程库
|
git push –u origin master
|
第一次要用-u 以后不需要,把当前master分支推送到远程库
|
git branch –d dev
|
删除dev分支
|
git branch -D dev
|
删除未合并过的dev分支
|
git stash
|
把当前的工作隐藏起来 等以后恢复现场后继续工作
|
git stash list
|
查看所有被隐藏的文件列表
|
git stash apply
|
恢复被隐藏的文件,但是内容不删除
|
git stash drop
|
删除文件
|
git stash pop
|
恢复文件的同时 也删除文件
|
git push origin master
|
把master分支推送到远程库对应的远程分支上
|
推荐阅读
最新文章
- 优秀开发人员网站推荐。——Arvin
- 【前端福利】用grunt搭建自动化的web前端开发环境-完整教程
- CentOS 6.6 (Desktop)部署Apache、MySQL以及Eclipse Luna等记录
- [oracle] update和merge语句的几点写法
- 第10章 使用Apache服务部署静态网站
- mybatis系列-15-查询缓存
- org.hibernate.exception.GenericJDBCException: Could not open connection
- DeconvNet 论文阅读理解
- EffectiveC++ 第1章 让自己习惯C++
- DHCP的IP地址租约、释放
- jsp页面输出当前时间
- golang linux安装
- .NET垃圾回收机制
- 20172306《Java程序设计与数据结构》第九周学习总结
- Shell - 简明Shell入门07 - 数组(Array)
- centos 7使用docker安装lnmp和redis环境
- chrome表单自动填充去掉input黄色背景
- css 元素选择器实例
- Repeats SPOJ - REPEATS(重复次数最多的连续重复子串)
- LeetCode: Word Ladder II 解题报告
热门文章
- CUDA多个流的使用
- WPF的两棵树与绑定
- Android 异步更新UI----handler+thread
- Method of packet transmission from node and content owner in content-centric networking
- SQLSERVER使用Spring Data JPA实现模糊查询like
- 【从翻译mos文章】在oracle db 11gR2版本号被启用 Oracle NUMA 支持
- Alamofire - 优雅的处理 Swift 中的网络操作
- Golang写https服务端
- WPF 绑定父类属性
- Django 下添加左侧字段显示和搜索