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的基本一致,由于是同一个邮箱,可以公用用一个密钥。
- 这样应该就是可以了
2 git usage¶
实现的功能:本地代码利用github进行backup。
-
按照上述的操作,配置好本地和github远程连接。
-
在github中新建一个repository(public or private is ok),会有一个git@github.com的仓库地址。也会提示对于新仓库、已经存在的仓库 的上传流程。
- 在本地需要的文件夹中,用terminal打开。执行
git init
等一些命令(对于初次上传)。参考视频。
在第一次提交以后。再提交改动并且推送的代码如下:
Bash | |
---|---|
1 2 3 |
|
==注意==
1、对于要上传的文件,有可能是从别的repository clone下来的,git add .
时会出现下面的警告。解决方法:删除相应文件夹中的.git
,.github
,以及.gitignore
即可。
2、超过50M的文件,会产生警告,推荐使用==lfs==,目前先不考虑。并且使用.gitignore
以后一般不会有这么大的文件了。
3、.gitignore
使用
一个工程中,文件一般有源代码和由源代码编译后,生成的文件,编译后的文件一般就没有必要追踪。例如build
、devel
文件。还有一些本地配置文件
等。
使用方法:
-
.gitignore
文件跟.git
文件夹在同一级目录下。 -
写法,就是不想追踪什么,写上就可以。
Text Only | |
---|---|
1 2 3 |
|
-
注意:如果不是一开始就写好了
.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¶
参考资料。