Git 的常用命令
tag 操作
git tag
列出本地的taggit push --tags
推送本地tag到远程服务器git tag -d xxx
然后git push origin :refs/tags/xxx
两步操作将远程服务器的某个tag删除
创建git空白分支
方法一
git checkout --orphan empty-branch
创建一个分支git rm -rf .
删除当前分支的所有文件, 因为不想有东西git commit -am "new branch for nothing"
提交记录- 注意 如果没有任何文件提交的话,分支是看不到的,可以创建一个新文件后再次提交则新创建的branch就会显示出来.
git branch -a
查看分支
方法二
git symbolic-ref HEAD refs/heads/newbranch
rm .git/index
git clean -fdx
# <do your work>
git add your files
git commit -m 'Initial commit'
代码分支合并 merge
和 rebase
merge
合并A分支到当前分支B
# -b 意味着 没有分支则创建
git checkout -b B
git merge <A>
效果: 多个分支合并的变更不会在一条直线.
rebase
如果想让Git
的提交历史成为一条干净的直线,则必须要使用rebase
命令, 也就是常说的变基.
合并A分支到当前分支B
git checkout -b A
git rebase <B>
Git Submodule 使用
ls -la
检查项目下是否有 .gitmodules
文件 (.gitmodules
文件中描述了 项目依赖的gitmodules)
使用
-
克隆
- ①
git clone 项目url --recursive
- ②或者 先克隆 主项目,在项目根目录下执行
git submodule init
- ①
-
更新
git submodule foreach git pull
git submodule update
Git 记录移除
某条提交到 Head 的记录
git reset --hard HEAD-ref
git push --force
--hard
意味着不保留当前变更,--soft
则保留--force
强制推送到远程
其他
git status
查看当前的本地仓库状态git pull origin master
从远程库拉取最新的文件到本地库,防止 直接推送报错git add .
添加 当前目录 所有的 未保存文件 到本地库git commit -m "注释内容"
将刚才 添加到本地库的文件 这一系列行为 的 注释添加上git push origin master
推送本地库的修改文件到远程库git stash
将本地的修改内容添加到 本地库的暂存区,主要用于 拉取远程文件时出现冲突 而不能拉取,但又不想将修改的内容添加到本地库的问题git stash pop
将本地库暂存区的文件 再释放出来,继续编辑git branch -a
列出本地所有的分支,a 就是 allgit checkout 分支名称
根据分支名,切换分支 ,如果没有则 切换失败git checkout -b 分支名称
根据分支名称 切换分支, 如果没有就创建一个