Git和GitHub的使用及注意事项

391 阅读2分钟

入门Git和GitHub

b站上黑马程序员的课质量还不错,搭配老师的ppt看,很高效。

00.git学习目标_哔哩哔哩_bilibili

另外,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导入仓库。如何实现同步?

  1. 手动同步。在 Gitee 的项目主页,提供了同步的按钮,在推送到 Github 后,再到 Gitee 项目主页手动点击一下。
  2. 推送两个仓库。在git推送时,就与gitee和GitHub两个远程仓库建立连接,一起推送。
  3. Github Actions 自动同步

常见报错

  1. 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 远程仓库名 远程分支名 --rebasegit pull origin master 的时候自动生成一条 merge commit,如果多人多次如此操作,那么提交记录就会出现很多条这种自动生成的 merge commit,非常难看。带上 --rebase 可解决此问题)

git使用注意事项

  1. git本地仓库文件路径发生变化

当本地仓库中的文件有大幅度的删除或者路径改变,应该使用-am而不是-m

commit -m  //用于提交暂存区的文件
git commit -am //用于提交跟踪过的文件

思考

  1. git为什么需要暂存区?

一般自己上传文件时,是一次性全部修改完,再add + commit,但是如果有功能分区,比如修改了功能A,也修改了功能B,此时就有了分两次commit的需求(因为两次commit,会保存两次快照,当你只想回退到功能A未作修改而功能B已做修改的时候,就有了此需求),因此需要暂存区来帮助我们更清晰的回退。