入门Git和GitHub
b站上黑马程序员的课质量还不错,搭配老师的ppt看,很高效。
另外,gitee上的git大全(在footer区域)也有很多教程,列举了git常用命令等。gitee
master改为main
2020年10月份,GitHub官方表示所有源代码仓库默认命名为main(而不是master),但是git在本地创建的仓库是master,所以需要进行一些配置:
创建一个新的仓库流程:
git init
git branch -M main
git remote add [origin] [远程仓库链接]
如果是旧的仓库,可以
//先给本地分支master改名,“-M”表示对分支重命名
$ git branch -M main
//删除远程分支master
$ git push origin --delete master
//强制推送到远程分支main
$ git push -f [origin] main
一劳永逸,修改配置项
git config --global init.defaultBranch main
GitHub与gitee的同步
将GitHub作为主要的开源项目托管平台,gitee作为备份。
首先在gitee上绑定GitHub账号,选择从GitHub导入仓库。如何实现同步?
- 手动同步。在 Gitee 的项目主页,提供了同步的按钮,在推送到 Github 后,再到 Gitee 项目主页手动点击一下。
- 推送两个仓库。在git推送时,就与gitee和GitHub两个远程仓库建立连接,一起推送。
- Github Actions 自动同步
常见报错
- Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart.
你在本地仓库上的修改没有基于远程库最新版本,本地仓库版本落后于远程仓库。(要养成上班先git pull,下班git push的习惯,才能保证在最终git push的时候本地commit历史和远程commit历史是一致的)
解决:git pull 远程仓库名 远程分支名 --rebase
(git pull origin master
的时候自动生成一条 merge commit,如果多人多次如此操作,那么提交记录就会出现很多条这种自动生成的 merge commit,非常难看。带上 --rebase
可解决此问题)
git使用注意事项
- git本地仓库文件路径发生变化
当本地仓库中的文件有大幅度的删除或者路径改变,应该使用-am而不是-m
commit -m //用于提交暂存区的文件
git commit -am //用于提交跟踪过的文件
思考
- git为什么需要暂存区?
一般自己上传文件时,是一次性全部修改完,再add + commit,但是如果有功能分区,比如修改了功能A,也修改了功能B,此时就有了分两次commit的需求(因为两次commit,会保存两次快照,当你只想回退到功能A未作修改而功能B已做修改的时候,就有了此需求),因此需要暂存区来帮助我们更清晰的回退。