记录一下平时经常使用的命令,遇到的问题
git config --global user.name <userName>
git config --global user.email <userEmail>
$ git branch -a
// 远程dev分支已经被合并删除了,但是本地查看还存在
* dev
master
remotes/origin/HEAD -> origin/master
remotes/origin/dev
remotes/origin/master
$ git pull -p
// 远程分支已经没有了dev,只有本地的dev分支,可以git branch -d dev 删除本地分支
* dev
master
remotes/origin/HEAD -> origin/master
remotes/origin/master
git push origin <branchName>
git push origin --delete <branchName>
遇到的报错
fatal: The current branch dev has no upstream branch. To push the current branch and set the remote as upstream, use
git push --set-upstream origin dev
git push --set-upstream origin dev
// 或者
git branch -u origin dev
// 查看当前分支
git branch -a
// 删除本地分支
git branch -d <branchName>
// 删除远程分支
git push origin --delete <branchName>
merge的基本用法
// 创建并切换到merge-test
git checkout -b merge-test
// 创建一次提交
git commit
// 切换回master分支,并创建一次提交
git checkout master
// 创建一次提交
git commit
在master分支执行命令
git merge merge-test
rebase基本用法
// 创建并切换到rebase-test
git checkout -b rebase-test
// 创建一次提交
git commit
// 切换回master分支,并创建一次提交
git checkout master
// 创建一次提交
git commit
切换到rebase-test分支,并执行rebase命令
git checkout rebase-test
git rebase master
切换回master,并执行rebase命令
git checkout master
// master的指针移动到最新的提交
git rebase rebase-test
merge与rebase的区别
- merge会合并分支代码到主分支,并创建一次merge提交,会保留完整的提交记录
- rebase会在master分支上创建新的提交,只留干净的提交树
通过比较两个命令的结果,再考虑实际项目中使用哪个命令
git reset --<mode> head
有三种模式 hard soft mixed
hard: 重置到某个节点,其它修改全部清空 soft: 重置到某个节点,工作目录和暂存区不变 mixed: 没有mode时默认选项,重置到某个节点,所有修改都会放到工作目录中