跳转至

Git and Github Tutorial

参考资料

1 local git & remote github (connected)

  • 注册github账号
  • 本地连接远程的github步骤
  • github本地账号:
    • git config --global user.name "xxx",这个名字自己随便起。
    • git config --global user.email "xxx",这个邮箱需要和github的邮箱一致。
  • 配置密码
    • ssh-keygen -t rsa -C "xxx",按几次回车。
    • id_rsa.pub文件(mac上的地址: /Users/liuhaitao/.ssh/)的内容复制到github-settings-SSH and GPG keys-New SSH key(Title自己随便起)
  • 验证
    • ssh -T git@github.com,会出现==Hi xxx! You've successfully authenticated, but GitHub does not provide shell access==. 就成功了。

除了Github以外,gitee也可以实现类似的功能,但缺点是gitee的Pages目前用不了。

  • 步骤和github的基本一致,由于是同一个邮箱,可以公用用一个密钥。
  • 这样应该就是可以了image-20250414133330001

2 git usage

实现的功能:本地代码利用github进行backup。

  • 按照上述的操作,配置好本地和github远程连接。

  • 在github中新建一个repository(public or private is ok),会有一个git@github.com的仓库地址。也会提示对于新仓库已经存在的仓库 的上传流程。

img

  • 在本地需要的文件夹中,用terminal打开。执行git init 等一些命令(对于初次上传)。参考视频

image-20250320114044261

在第一次提交以后。再提交改动并且推送的代码如下:

Bash
1
2
3
git add .
git commit -m "xxx"
git push

==注意==

1、对于要上传的文件,有可能是从别的repository clone下来的,git add .时会出现下面的警告。解决方法:删除相应文件夹中的.git.github,以及.gitignore即可。

image-20250320114216504

2、超过50M的文件,会产生警告,推荐使用==lfs==,目前先不考虑。并且使用.gitignore以后一般不会有这么大的文件了。

image-20250320114824857

3、.gitignore使用

一个工程中,文件一般有源代码由源代码编译后,生成的文件,编译后的文件一般就没有必要追踪。例如builddevel文件。还有一些本地配置文件等。

使用方法:

  • .gitignore文件跟.git文件夹在同一级目录下。

  • 写法,就是不想追踪什么,写上就可以。

Text Only
1
2
3
fr3_ws/build/
fr3_ws/devel/
...
  • 注意:如果不是一开始就写好了.gitignore文件。而是已经将本地的仓库push到了远程以后,再使用.gitignore。那么已经提交并推送到远程仓库的文件,并不会因为后来添加了.gitignore就从仓库自动消失。

  • 如果想要对已经提交的文件以后不在追踪。可以一方面在.gitignore中添加规则。另一方面执行:

    Bash
    1
    2
    3
    git rm --cached <file or directory>
    git commit -m "Remove tracked files that are now in .gitignore"
    git push
    

    git rm --cached不会删除本地硬盘的实际文件,只是告诉git不要在追踪这些文件了。如果确实想连本地也删除,可以去掉--cached,大多数情况不会的。

4、冲突问题

  • 如果是想把本地的推到远端,如果有这个文件,就直接合并,以本地覆盖远端的。远端如果有文件a,本地没有,那么不用管。
  • 这样也可以先git pull --rebase origin main,在合并。

  • 直接不拉取的话,Git 默认不会允许推送,因为会违反“快进(fast-forward)”原则。如果你强制推送(比如使用 git push -f),那么远端分支会被你本地的分支完全覆盖,这样远端中本地没有的文件也会被删除,而不是保留。

github除了建立自己的仓库、下载别人的仓库以后,还很多功能。

3 github Pages

参考资料

4 github xxx