Linux应用程序开发笔记:git常用指令(持续更新中......)

仓库创建

服务器端:

sudo git init --bare mcuboot.git
sudo chown -R git:git mcuboot.git

本地电脑:

git clone --recursive [email protected]:/srv/git/mcuboot.git
cd mcuboot
git remote add mcuboot https://github.com/JuulLabs-OSS/mcuboot.git
git pull mcuboot master
git push origin master

branch

创建新的本地分支:git checkout -b #分支名称#
删除本地分支:git branch -D #分支名称#
删除远程分支:git push origin -d branchA #分支名称#
切换本地分支:git checkout #分支名称#
查看本地分支:git branch
查看远程分支:git branch -r

fetch

获取远程指定分支:git fetch origin #分支名称#

tag

创建新的本地标签:git tag -a #版本# -m #说明#
推送本地标签到远端:git push origin #标签名称#
查看远程标签:git ls-remote --tags origin
删除本地标签:git tag -d #标签名称#
删除远程标签:git push origin :refs/tags/ #标签名称#
切换到某个标签:git checkout -b branch_name tag_name

submodule create

git clone --recursive [repository] 递归的方式克隆整个项目
git submodule add [repository] [path] 添加子模块
git submodule init 初始化子模块
git submodule update 更新子模块
git submodule foreach git pull 拉取所有子模块
git submodule update --init --recursive 自动拉取子模块

submodule delete

1.删除 .gitsubmodule中对应submodule的条目
2.删除 .git/config 中对应submodule的条目
3.执行 git rm --cached {submodule_path}。注意,路径不要加后面的“/”。例如:你的submodule保存在 supports/libs/websocket/ 目录。执行命令为:git rm --cached supports/libs/websocket

submodule update

1.更新 .gitsubmodule中对应submodule的条目URL
2.更新 .git/config 中对应submodule的条目的URL
3.执行 git submodule sync

git push/pull error

1、httpBuffer加大:
git config --global http.postBuffer 524288000

2、压缩配置
git config --global core.compression -1

3、修改配置文件
export GIT_TRACE_PACKET=1
export GIT_TRACE=1
export GIT_CURL_VERBOSE=1

生成patch

git format-patch [commit id] ——某次提交以后的所有patch(不包含该commit)
git format-patch 365a…4e16 ——某两次提交之间的所有patch(包含两个commit)
git format-patch –n 07fe ——某次提交(含)之前的几次提交patch
git format-patch -1 07fe ——单次提交patch

打入patch

git apply --stat newpatch.patch ——检查patch文件
git apply --check newpatch.patch ——检查能否应用成功
git am -s newpatch.patch ——打补丁(使用-s或–signoff选项,可以commit信息中加入Signed-off-by信息)
git am newpath.patch ——将newpath.patch按照先后顺序打上
git am --abort ——当git am失败时,用以将已经在am过程中打上的patch废弃掉(比如有三个patch,打到第三个patch时有冲突,那么这条命令会把打上的前两个patch丢弃掉,返回没有打patch的状态)
git am --continue ——当git am失败,解决完冲突后,这条命令会接着打patch
git am --resolved ——同continue

打入patch错误处理方法

git:patch does not apply

说明当前patch有冲突,不能合并,此时使用 git apply --reject <patch_name> 指令,强制把不冲突的文件先合并,有冲突的会生成.rej文件 ,在根据这个文件中的修改去手动执行即可 ,解决完冲突要把.rej文件删除,在执行 git add . ==> git am --continue 命令即可

发布了41 篇原创文章 · 获赞 4 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/u010018991/article/details/102938539