# 查看本地所有分枝
git branch
# 查看远程所有分支
git branch -a
# 2. 拉取本地没有的远程分支
- 拉取远程分支:
git fetch origin 分支名称
- 新建并切换到
git checkout -b 分支名称 origin/分支名称
- 只执行切换分支:
git checkout 分支名称
# 3. 提交修改并推送到远程分支
git add 文件名 或 git add .
- 从暂存区添加到缓存区
git commit -m “自填提交内容信息”
- —从暂存区添加到本地仓库
git push
// 推送主分支所有内容
git push origin master
// 推送其他分支(dev)
git push origin dev
# 删除本地分支
git branch -D <BranchName>
# 删除本地全部分支
// 强制删除所有分支(慎用,有些本地修改你可能没有提交)
git branch |xargs git branch -D
// 删除本地所有与远程仓库同步分支(本地修改过未提交的不会删除)
git branch |xargs git branch -dz
# 获取某次提交的代码
git cherry-pick 分支id
# git stash 的使用
- 保存 stash title 为 saveName
git stash save 'saveName'
- 查看 stash 列表
git stash list
- 找回 stash 且不删除 stash list 中的内容
git stash apply stash@{0}
- 删除指定 stash 中的内容
git stash drop stash@{0}
# 打 tag 标签
npm run pub
# git merge 和 git rebase
# git merge
直接使用
git merge
git --no-ff
--no-ff:不使用fast-forward
方式合并,保留分支的 commit 历史。git --squash
--squash 是用来把一些不必要 commit 进行压缩,比如说,你的 feature 在开发的时候写的 commit 很乱,那么我们合并的时候不希望把这些历史 commit 带过来,于是使用--squash 进行合并,此时文件已经同合并后一样了,但不移动 HEAD,不提交。需要进行一次额外的 commit 来“总结”一下,然后完成最终的合并。什么是 fast-forward
- 解释: 就是当条件允许的时候,git 直接把 HEAD 指针指向合并分支的头,完成合并。
- 自己理解为:自己本地分支 commit 的多次代码直接压缩为一次提交,然后合并到远程分支
- 可能出现的问题:
- 删除分支,会丢失分支信息,因为 commit 已经压缩为了一次提交