Git
1. 分支
1.1 查看分支
git branch # 查看本地分支
git branch -r #查看远程分支
git branch -a #查看所有分支,红色为远程
1.2 切换分支
git checkout [branch] #切换到已有分支
git checkout -b [newbranch] #创建并切换到新分支
1.3 推送分支到远端
git push -u origin [newbranch] #首次推送分支到远端,之后直接使用 git push origin [newbranch] 即可
1.4 删除分支
git push origin --delete [branch] #删除远端分支
git branch -D [branch] #删除本地分支
1.5 清空远程分支方法
git rm -r --cached . #清除本地缓存
git commit -m"delete"
git push origin main
2. 克隆
2.1 克隆特定分支文件
git clone -b [branch] [仓库链接]
2.2 一次性批量克隆仓库到本地
使用 vcs
命令实现批量下载,例如某 build_depends.repos
文件内容如下
repositories:
common:
type: git
url: https://gitlab.com/autowarefoundation/autoware.ai/common.git
version: master
lanelet2:
type: git
url: https://github.com/fzi-forschungszentrum-informatik/Lanelet2.git
version: master
messages:
type: git
url: https://gitlab.com/autowarefoundation/autoware.ai/messages.git
version: master
mrt_cmake_modules:
type: git
url: https://github.com/KIT-MRT/mrt_cmake_modules.git
version: master
在同级文件夹下使用命令:
vcs import ..<<build_depends.repos
将文件中的仓库批量下载至上一级文件夹 ..
当中。
3. 忽略文件或文件夹
- 在git工作空间下创建
.gitignore
文件(注意不是在.git
文件夹下创建),若要忽略build
和.vscode
文件夹,则可以在.gitignore
中写道:
# .gitignore文件内容
build
.vscode
- 若要忽略的文件已经添加到缓存区,删除
git ls-files #缓存查看
git rm -r --cached [要忽略文件夹]
git add .
git commit -m "提交描述"
4. git merge 相关操作
--ff
--no-ff
5. git merge 和 git rebase 区别
两种方式都是合并分支,但是有差别。
5.1 git merge
- 简介: git merge 合并以后,两个分支的commit 信息还各自按照时间线保留,只不过是一种交叉方式的合并,在 git 树中存在交叉。
- 使用场景: 由各自的 feature 分支向 develop 分支合并。
git checkout main
git merge --no-ff develop
5.2 git rebase
- 简介: 顾名思义,就是重新选择基础,也就是重新选择 rebase 的分支为基础,然后达到一个线性合并的方式。会找到两个分支的上一个共有 commit,然后插入 rebase 分支的新 commit 。
- 使用场景: 在本地清理自己的各种分支,主打一个简洁,并不需要多关注以前的 commit 时间和信息。
git checkout main
git rebase develop
6. git commit –amend
Git 中修改最近一次已经提交的代码,而无需再进行 commit 操作
# 修改代码
git add .
git commit —amend —no-edit
这样不会产生新的 commit,只有上一次的 commit ,但是也修改了代码。