赞
踩
目录
-以创建新分支test为例
方法1:
(1)git服务器上拉取分支test
(2)git checkout -b stest
(3)git pull origin test:test
(4)git push origin HEAD:refs/for/test
方法2:
(1)git服务器上拉取分支test
(2)本地执行 git pull -r
(3)git branch -a | grep test //---> remotes/origin/test
(4)git checkout -b test remotes/origin/test
(1)git reset --hard HEAD^
(2)git pull --rebase
常识:
git pull = git fetch + git merge FETCH_HEAD
git pull --rebase = git fetch + git rebase FETCH_HEAD
git commit --amend
::
ctrl + O
enter
ctrl + x
git commit --amend --no-edit
硬回退:
git reset --hard HEAD~
软回退:
git reset --soft HEAD~
git log --name-status
git add -u
git commit -m "alter msg"
// 代码review提交
git push origin HEAD:refs/for/test
// 不代码review,提交后直接合入
git push origin feature_PB-18985:refs/heads/feature_PB-18985
git branch -a | grep test 例如:检索到分支 remotes/origin/release/test
git checkout -b test remotes/origin/release/test
//将别的分支的某一次提交合并到当前分支上
git cherry-pick a98ea4c2bf2cab5afa2b50254354498412b22222
//若冲突,修改冲突,然后加入
git add .
//继续cherry-pick
git cherry-pick --continue
// 多个连续commit合并,commit_id到commit_idn之间,包括两端
git cherry-pick commit_id..commit_idn
// commit_id到commit_idn之间,非闭包
git cherry-pick (commit_id..commit_idn]
// 挑选多个commit:
git cherry-pick commit_id commit_idx commit_idy
例如删除dev分支
// 删除本地分支
git checkout master
git branch -d dev
// 删除远程分支 git push origin [空格][冒号][分支名字]
git push origin :dev
// 查看某个文件的各行最后修改时间
git blame interface/test/guide/test.cpp
// 查看某个文件的提交历史
git log --pretty=oneline interface/test/guide/test.cpp
// 查看一次commit_id对应的详细修改
git show commit_id
//粗略查看文件提交记录
git log some.cpp
//快速查看文件有了哪些改动
git log --stat
//在一行内显示提交的历史信息
git log --pretty=oneline
//查看提交文件的不同之处,-2是说只显示最近两次的
git log -p -2 some.cpp
最常用的是git log -p,既可以看到提交记录,也可以看到提交对应文件修改
git log --author=liudehua
// 根据文件中的具体内容确定文件修改人,例如查看代码 fun_come(123, "llsTest");的修改人
git blame /home/tiger/work/hello.cpp | grep " fun_come(123, \"llsTest\");"
// 查看某次提交的详细修改
git show 6c3790f2a
// 查看具体文件的提交记录
git log --pretty=oneline /home/tiger/work/hello.cpp
在git pull -r 不能拉取远程分支时,可以使用如下命令拉取
例如拉取远程的分支:test
git remote set-branches origin test
git fetch origin test
//查看目前git信息,包括用户名,密码等
git config --list
//查看git用户名
git config user.name
//查看git邮箱
git config user.email
//修改git用户名
git config --global user.name "liudehua"
//修改git邮箱
git config --global user.email "liudehua@***"
//为当前git账户生成公钥
ssh-keygen -t rsa
git commit -m "
1.说明一
2.说明二
3....
"
(1)git stash
(2)git pull -r
(3)git stash pop
(4)git commit -m "***"
(5)git push ...
sudo apt install git
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub
git clone -b test-UI <git-url>
19.1.增加子模块
git submodule add https://gitlab.com/joernchen/xxeserve.git
子模块管理对应的三个重要配置
.gitmodules:
.git/config:
.git/modules:每个子模块的.git仓库的副本
注意:
Git submodule的内部维护是相当复杂的,因此不要手工修改Git子模块的配置!如果你想移动、删除或以其他方式操作子模块,请不要手动尝试。要么使用适当的Git命令,
相关Git桌面GUI,它们会处理这些细节。
19.2.提交
在母仓库正常提交即可
19.3.代码拉取
方法一:
git clone 拉取母库
git submodule update --init --recursive
方法二:
git clone ***url*** --recurse-submodules
19.4.查看子模块版本(类似于tag)
git submodule status
19.5.子模块切换tag
git checkout **tag**
19.6.更新子模块
git submodule update ***sub_module***
19.7递归更新源码
git submodule update --init --recursive
19.8 git submodule update --init 和 git submodule update --remote
//--init则会拉取我们远程仓库保存的子模块commitId对应的版本
//--remote拉取子模块对应分支的最新commit版本,
git submodule update --init --recursive
git submodule update --remote --recursive
实战举例:
1. 创建子模块
git submodule add --force [git path] common_submodule/pro1
2.卸载子模块 emuproj/emuproj/common_submodule/pro1指的是.gitmodules中的path
// 卸载
git submodule deinit -f emuproj/emuproj/common_submodule/pro1
// 删除目录
git rm --force emuproj/emuproj/common_submodule/pro1
3.克隆代码
(1)方法一
git clone [git path] --recurse-submodules(2)方法二
git clone [git path]
git submodule init
git submodule update
gitmodules操作参考:
https://www.jianshu.com/p/1aabba459cbe
https://zhuanlan.zhihu.com/p/614114699
git rm -rf XXXXX
git remote show origin
//查看提交commit id,得到XXXXX
git log
git reset XXXXX [file-name]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。