git笔记

修改提交备注信息

git commit --amend -m "message"

git使用远端仓库文件更新本地文件,先fetch, 然后checkout

git fetch

git checkout origin/master -- path/to/file

rebase

git checkout master

git rebase develop   # master 分支基于develop rebase

git rebase -i <commit_hash>  # 交互模式,可以合并多次的提交, https://juejin.im/entry/5ae9706d51882567327809d0

$ git tag -a v2.1.0 -m "xyz feature is released in this tag."   # git tag v2.0, -a to create annotated tag
$ git tag
v1.0.0
v2.0.0
v2.1.0

git push origin v1.0.3
git push --tags

commit后回退

git reset --hard commit_sha

撤销未提交的合并

git reset --merge ORIG_HEAD

git add -A   # stages all changes
git add .   # stages new files and modifications, without deletions
git add -u  # stages modifications and deletions, without new files, 添加所有修改,不包含新文件

# git add -A is equivalent to git add .; git add -u.

git submodule add <子module的git地址> : 从远程仓库将子module导入到该项目中,这时候会自动生成.gitmodules文件。
git submodule add <子module的git地址> <主项目内的文件夹>: 从远程仓库将子module导入到该项目中的特定文件夹中。
git submodule init:初始化本地.gitmodules文件。
git submodule update:在父项目中更新子module的修改。
git submodule foreach git pull:拉取所有子模块。
git submodule foreach git submodule update:如果你的submodule又依赖了submodule,可以使用git submodule foreach命令来实现一次性全更新。
git clone --recurse-submodules <主项目仓库地址>:获取主项目和所有子项目源码【git pull <主项目仓库地址>的时候不会同时获取submodules的源码】。

git submodule add <仓库地址>

git submodule update --remote

提示:如果您想要检出一个远程跟踪分支,例如在 'origin' 上的,您可以使用分支
提示:全名和 --track 选项:
提示:
提示: git checkout --track origin/<名称>
提示:
提示:如果您总是喜欢使用模糊的简短分支名 <名称>,而不喜欢如 'origin' 的远程
提示:名称,可以在配置中设置 checkout.defaultRemote=origin。

https://stackoverflow.com/questions/572549/difference-between-git-add-a-and-git-add

https://blog.csdn.net/www1575066083/article/details/103904660

ref: https://zhuanlan.zhihu.com/p/34592377

原文地址:https://www.cnblogs.com/buxizhizhoum/p/10019096.html