Git学习总结
git整理:
工作区中的.git目录为Git版本库,git add将文件提交到暂存区,git commit将文件提交到本地仓库,git push将文件提交到远程仓库。
历史版本回退及提交至远程仓库
1 | git reset --hard HEAD^ 可以回退版本 当回退多个版本时可以使用 HEAD~100(恢复到第100个版本)。 |
分支的创建、切换与合并
1 | git checkout -b <branch> 创建一个分支并切换,等同于git branch <branch> git checkout <branch>两条命令 |
对远程分支进行操作
1 | git push origin --delete branch <branchname>或git push origin :<branchname> 删除远程仓库中的分支 |
重命名远程分支:
1、删除远程分支:git push –delete origin
2、重命名本地分支:git branch -m
3、推送本地分支:git push origin
提交出错解决方法
如果在提交远程仓库的时候出现“更新被拒绝,因为您当前分支的最新提交落后于其对应的远程分支”,此时应该先获取远程更新,然后合并本地的分支,最后提交.
1 | git fetch origin; # 获取运程仓库 |
如果出现”您要求从远程 ‘origin’ 拉取,但是未指定一个分支。因为这不是当前分支默认的远程仓库,您必须在命令行中指定一个分支名。”
执行以下内容:git branch --set-upstream-to corigin/master master
出错时
出错内容:
1 | error: failed to push some refs to 'https://github.com/bnq456/bnq456.github.io.git' |
- 强制推送
在确定自己仓库中的内容低于本地仓库中的内容并且确定本地优于远程时,如果无法进行推送,可以选择强制推送git push -u origin master -f - push前先将远程repository修改pull下来
1
2git pull origin master
git push -u origin master - 若不想merge远程和本地修改,可以先创建新的分支:
1
2
3git branch [name]
然后push
git push -u origin [name]
fetch 和 pull的区别:
1 | git fetch:将远程主机的最新内容拉取到本地,是否合并由用户决定。 |

Git中工作环境的临时存储与恢复
1 | git stash 把当前工作现场存储起来,用于以后恢复现场继续工作 |
pop和 apply的区别
pop是将工作环境切回后直接删除
apply是先应用工作环境,然后存储的工作环境是否删除由用户自己决定。使用:git stash drop进行删除
实验性质的代码最好新建分支
分支的创建、删除、合并与推送
1 | git branch <branchname> |
多人协作:
1、首先,可以试图用git push origin
推送自己的修改;
2、如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
3、如果合并有冲突,则解决冲突,并在本地提交;
4、没有冲突或者解决掉冲突后,再用git push origin
推送就能成功!
5、如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch –set-upstream-to
origin/ 。
rebase:(不是很了解)
rebase操作可以将本地未push的分叉提交历史整理成一条直线;
rebase的目的是使我们在查看提交的变化时更容易,因为分叉的提交需要三方比较。
git 标签:
git tag
git tag可以查看所有的标签
当给以前忘记打标签的项目打标签时,可以先找出要打标签项目的编号,然后git tag
-d用于删除标签
远程标签推送:
git push origin
git push origin –tags 将所有标签推送到远程
1 | 当删除远程标签时: |
日志文件查询
1 | git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" |