- 拉取最新数据
git pull
- 列出所有分支
git branch #本地
git branch -a #所有,包括本地和远程
- 切换到远程分支remote_branch
git checkout remotes/origin/remote_branch
- 切换到本地分支local_branch
git checkout local_branch
- 添加修改文件到缓存区
git add .
- 添加说明
git commit -m “说明“
- 提交
git push #提交到master
git push origin remote_branch #提交到remote_branch
- 查看缓存区状态
git status
- 删除分支
删除本地分支:
git branch -d to_delete #若未merge过则-d为-D
删除远程分支:
git push origin --delete remote_branch_to_delete
- 新建分支new_branch_name并切换
git checkout -b new_branch_name
git push --set-upstream origin new_branch_name#上传至远程branch,set-upstream是因为checkout后远端还未生成branch
- 合并分支
git merge xxx
#情形1:当dev分支上的代码达到上线标准后,需合并到master分支
git checkout dev
git pull #拉取dev分支最新数据
git checkout master#切回到master分支
git merge dev
git push -u origin master
#情形2:master分支代码的改动需要更新到dev分支上
git checkout master
git pull
git checkout dev
git merge master
git push -u origin dev
当`git merge`遇到冲突时,需要解决冲突,完成合并后采用`git add` 进行标记、`git commit`批注和`git push`提交。
- 放弃合并分支
git log #查看后退对应版本
git reset --hard 版本号 #回退到版本号的版本
git push origin remote_branch --force #强制更新
- 清空暂存区
- 还没有add和commit操作的情况下:
git checkout .
上述命令只能清空修改的代码部分,但对于新建的文件/文件夹是无法清空的,需结合下面这条命令来清空:
git clean -d
- 在已经进行过add操作的情况下,用以下命令重置:
git reset .
- 查看日志
git log #查看版本信息
git whatchanged #查看每次修改的文件列表
- 同步远程分支修改情况(如删除)
当远程删除某分支后,本地还能看到,可以使用下述命令删除远程已经不存在的分支。
git remote prune origin
- 子模块更新拉取
git submodule init
git submodule update
#或者二合一:
git submodule update --init --recursive
- 子模块更新提交
git add 子模块文件夹
git commit -m "update submodule"
git push
- 打标签并推送到远程
git tag -a v1.0 -m "first version"
git push origin v1.0
- 合并连续的提交记录:
暂存工作区:
git stash
选择需要合并的记录,注意commit_hash是所要合并的commits外的最近的那次提交号:
git rebase -i commit_hash
如果远程仓库已有之前的commit,则需要使用–force 强制提交更新远程:
git push --force
弹出暂存内容:
git stash pop
- 查看文件修改详细记录:
git log -p filename
- 合并某分支的某次提交内容到当前分支:
注:同一仓库下所有的commit_hashcode具有唯一性,所以无需指定其他内容
git cherry-pick commit_hashcode
- 推送本地基于公开仓库的修改到克隆出的私有仓库中:
git remote set-url origin https://github.com/username/test.git
git add .
git commit -m "xxx"
git push
- 删除子模块
git submodule deinit submodule_name
git rm --cached submodule_name
git commit -am "Remove a submodule {submodule_name}"
参考资料:
[1] Git - Book
[2] git submodule的简单介绍
[3] Git - 打标签
[4] git 几个commit点合并成一个commit点_云原生手记的博客-CSDN博客_git 合并commit
[5] GIT 合并某几条 commit_panfengzjz的博客-CSDN博客_git 合并某几个commit
[6] git stash详解_淹不死的水的博客-CSDN博客_git stash
[7] Git远程仓库地址变更本地如何修改_晨之风的博客-CSDN博客_git 修改远程地址
[8] [Git] 如何优雅的删除子模块(submodule)或修改Submodule URL - 简书