整理了一下工作中常用的 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分支推送到远程库对应的远程分支上
|
推荐阅读