赞
踩
目录
No submodule mapping found in .gitmodule
- git config --global user.name"xxxxxx"
- git config --global user.email"xxxxx@163.com"
- 执行下面的命令
- git config user.name "xxxx"
- git config user.email "xxxx@163.com"
当前分支所有超前master的提交:git format-patch -M master
某次提交以后的所有patch:git format-patch 4e16 --4e16指的是commit名
从根到指定提交的所有patch:git format-patch --root 4e16
某两次提交之间的所有patch:git format-patch 365a..4e16 --365a和4e16分别对应两次提交的名称
某次提交(含)之前的几次提交:git format-patch –n 07fe --n指patch数,07fe对应提交的名称
单次提交为:git format-patch -1 07fe
git format-patch生成的补丁文件默认从1开始顺序编号,并使用对应提交信息中的第一行作为文件名。如果使用了-- numbered-files选项,则文件名只有编号,不包含提交信息;如果指定了--stdout选项,可指定输出位置,如当所有patch输出到一个文件;可指定-o <dir>指定patch的存放目录;
1、先检查patch文件:git apply --stat newpatch.patch
2、检查能否应用成功:git apply --check newpatch.patch
3、打补丁:git am --signoff < newpatch.patch (使用-s或--signoff选项,可以commit信息中加入Signed-off-by信息)
1、在使用git am之前, 你要首先git am --abort 一次,来放弃掉以前的am信息,这样才可以进行一次全新的am,不然会遇到如下错误:
.git/rebase-apply still exists but mbox given.
2、git am 可以一次合并一个目录下所有的patch,例如:
git am somedir/*.patch
git branch -m old_branch_name new_branch_name
例如想要跟踪远程的serverfix分支,可使用如下命令
git checkout --track origin/serverfix
如果想要将本地分支与远程分支设置为不同名字(如sb),可将上述命令改为
git checkout -b sf origin/serverfix
git push origin --delete remote_branch
git push origin branch_local
- git checkout dst_branch_name
- git cherry-pick commit_id
例如:
- git checkout master
- git cherry-pick 62ecb3
git merge origin/branch_name
方法一
git checkout -b branch_name commit_id
方法二
1、确定需要取出版本的commit值
2、基于该commit创建分支
git branch branch_name commit_id
3、切换到该分支
git checkout branch_name
撤销当前目录下没有add的修改
git checkout .
git reset
步骤一:使用“git reset --hard 版本号”在本地回退到相应的版本;
步骤二:使用“git push origin <分支名> --force”覆盖相应的分支。
git log -2 //查看最近的2条提交的日志记录
git log --grep xxx
git submodule init
git clone --recursive https://xxx
方法一
进入子模块目录,运行git fetch和git merge目录,例如:
方法二
在父项目目录执行git submodule update --remote xxx,默认检出子模块仓库的master分支,例如:
如果想检出master分支以外的分支,可以使用一下命令
- git config -f .gitmodules submodule.XXX.branch stable
- 以上目录将XXX子模块跟踪仓库的“stable” 分支。
如果不用- f .gitmodules选项,那么它只会为你做修改。但是在仓库中保留跟踪信息更有意义一些,因为其他人也可以得到同样的效果。
- git submodule add https://xxx/otherprj [path]
-
- 如果不带path则子模块会将子项目放到一个与仓库同名的目录。
Git中目前尚无直接删除子模块的命令,但可以通过以下步骤删除:
git tag tag_name [commit ID]
例如:
git tag v1.4 在当前提交创建轻量标签
git tag v1.4 abcd 在Commit ID以abcd开头的提交创建轻量标签
- git tag -a tag_name -m tag_message
- 例如,git tag -a v1.4 -m 'my version 1.4'
-m 选项指定了一条将会存储在标签中的信息。
- git tag -a tag_name commit_id
- 例如,git tag -a v1.2 9fceb02
git push origin tag_name
使用带有--tags 选项的git push命令。 这将会把所有不在远程仓库服务器上的标签全部传送到那里。
- git tag -d tag_name
- git push origin :refs/tags/tag_name
- git tag new_tag old_tag
- git tag -d old_tag
- git push origin :refs/tags/old_tag
- git push --tags
git tag
git tag -l 'v1.8.5*'
git show v1.4
- git checkout -b branch_name tag_name
-
- 例如:git checkout -b version2 v2.0.0
描述:有时候.gitmodule有对应的子模块的条目,但在执行git submodule update --init时仍然会报类似No submodule mapping found in .gitmodules for path 'XXX/YYY'的错误信息
解决:将.gitmodules文件中对应模块条目的path中的反斜杠改为斜杠。
示例:"path = thirdsrc\boost" 改为 "path = thirdsrc/boost"
- //保存本地修改
- git stash
-
- //本地修改并附加消息
- git stash save "message"
- //恢复暂存修改到本地,同时从暂存栈中删除最近的暂存
- git stash pop
-
- //恢复最近暂存的修改到本地,但不从暂存栈中删除最近的暂存
- git stash apply
-
- //恢复指定暂存的修改到本地,但不从暂存栈中删除该暂存
- git stash apply stash@{xxx}
- //清除所有暂存的修改
- git stash clear
-
- //删除指定暂存的修改
- git stash drop stash@{xxx}
git stash list
可以使用git stash show命令,后面可以跟着stash名字。示例如下:
- $ git stash show
- index.html | 1 +
- style.css | 3 +++
- 2 files changed, 4 insertions(+)
在该命令后面添加-p或--patch可以查看特定stash的全部diff,如下:
- $ git stash show -p
- diff --git a/style.css b/style.css
- new file mode 100644
- index 0000000..d92368b
- --- /dev/null
- +++ b/style.css
- @@ -0,0 +1,3 @@
- +* {
- + text-decoration: blink;
- +}
- diff --git a/index.html b/index.html
- index 9daeafb..ebdcbd2 100644
- --- a/index.html
- +++ b/index.html
- @@ -1 +1,2 @@
- +<link rel="stylesheet" href="style.css"/>
方法一:git config --global core.editor vim
方法二:打开.git/config文件,在core中添加 editor=vim即可
《Pro Git Second Edition》
git pull和git merge区别&&Git冲突:commit your changes or stash them before you can merge. 解决办法
No submodule mapping found in .gitmodule for a path that's not a submodule
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。