Git常用命令总结

目录

1.创建新建分支

2.强制拉去代码

3.合并相邻提交,保证只有一个commit信息

4.本地回退

5.查看git修改列表

6.提交代码

7.切换新分支并从服务端拉取最新

8.git cherry-pick合并代码使用

9.删除本地和远程分支

10.查看文件的修改

11.查看某个作者提交的详情

12.查看单个文件修改信息

13.拉取远程分支

14.git客户端账户信息处理

15.git提交增加多行注释

16.提交代码标准动作

17.linux下安装git,生成并查看pk

18.单独拉取仓库的某一个分支

19.子模块管理

20.git本地目录文件删除

21.查看代码仓库地址

22.回退某个文件

23.git命令思维导图总结


1.创建新建分支

-以创建新分支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

2.强制拉去代码

(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 

3.合并相邻提交,保证只有一个commit信息

git commit --amend
:: 
    ctrl + O   
    enter
    ctrl + x
git commit --amend --no-edit

4.本地回退

硬回退:
git reset --hard HEAD~
软回退:
git reset --soft HEAD~

5.查看git修改列表

git log  --name-status

6.提交代码

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

7.切换新分支并从服务端拉取最新

git branch -a | grep test  例如:检索到分支 remotes/origin/release/test
git checkout -b test  remotes/origin/release/test

8.git cherry-pick合并代码使用

//将别的分支的某一次提交合并到当前分支上
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

9.删除本地和远程分支

例如删除dev分支
// 删除本地分支
git checkout master
git branch -d dev
// 删除远程分支 git push origin [空格][冒号][分支名字]
git push origin :dev


10.查看文件的修改

// 查看某个文件的各行最后修改时间
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,既可以看到提交记录,也可以看到提交对应文件修改


11.查看某个作者提交的详情

git log --author=liudehua


12.查看单个文件修改信息

// 根据文件中的具体内容确定文件修改人,例如查看代码 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

13.拉取远程分支

在git pull -r 不能拉取远程分支时,可以使用如下命令拉取
例如拉取远程的分支:test
    git remote set-branches origin test
    git fetch origin test

14.git客户端账户信息处理

//查看目前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 

15.git提交增加多行注释

git commit -m "
1.说明一
2.说明二
3....
"

16.提交代码标准动作

(1)git stash
(2)git pull -r
(3)git stash pop
(4)git commit  -m  "***"
(5)git push ...    

17.linux下安装git,生成并查看pk

sudo apt install git
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub

18.单独拉取仓库的某一个分支

git clone -b test-UI <git-url>

19.子模块管理

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

20.git本地目录文件删除

git rm -rf XXXXX

21.查看代码仓库地址

git remote show origin
    

22.回退某个文件

//查看提交commit id,得到XXXXX

git log 
git reset  XXXXX  [file-name]

23.git命令思维导图总结

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值