Git GitHub管理代码

准备工作

注册一个GitHub账号 & 电脑安装Git软件。

新建仓库&上传代码

进入GitHub网页,登录,新建一个repositoty,只用填写仓库名字,不要勾选Initialize this repository with a README。(选了的话一会儿上传代码之前我们会先需要把这个下载到目录里去,否则因为本地没有这个文件会报错)

新建完仓库之后网页会提示我们一些简单的命令行操作↓

仓库建好后,我们就可以上传文件到该仓库了。右键单击我们存放代码的文件夹,选择Git Bash Here。

1...输入git init,表示初始化,这时候文件夹里会多出一个.git的文件夹(是隐藏的,如果看不到自己搜下怎么查看隐藏的文件);
2...输入
echo "# css_task2" >> README.md,这表示在当前目录下新建一个README.md文件,内容是# css_task2,我们可以对项目的介绍写到这个文件;
3...输入
git add README.md,表示我们准备把这个文件添加到仓库中去;
4...输入
git commit -m "first commit",表示准备提交了,提交备注是first commit,我们也可以填写别的内容;
5...输入
git remote add origin https://github.com/liu-xiao-cui/css_task2.git,让Git知道我们要把代码传到哪个仓库里去,格式是https://github.com/GitHub用户名/仓库名.git
6...输入
git push,表示上传,这时候会弹窗喊我们输入GitHub帐密。搞定了之后刷新GitHub那个仓库的页面,会发现里面多了个README.md文件↓

看到备注first commit字样了吗?它就是git commit -m "first commit"命令设置的,用来备注我们提交的内容。

如果我们还想上传别的文件,重复步骤3,4,6。用git add filename来添加文件,或者使用git add .来添加所有文件 → 用git commit -m "your commit"来进行备注 → 用git push来上传。

补充几个基本操作

查看提交日志:git log(途中按Q退出查看)
删除某个文件:
git rm filename → git commit -m "remove filename" → git push
所有文件回退到上一次push:git reset --hard HEAD^ → git push origin master --force

设置SSH

还记得新建完仓库后的新页面吗?注意第二行不是有个HTTPS,还有个SSH吗?

在Git中,我们可以采用HTTPS传输数据,也可以采用SSH传输数据。如果采用HTTPS的方式,第一次push时会弹窗喊我们输入GitHub帐密,后面只要电脑不关机就不用再输了;如果是采用SSH的方式,每次上传代码的时候会让我们输入SSH的密码(这个密码可以是空,就一直不用输密码了,如果设了密码每次push都会让输)。

设置SSH的步骤如下。

打开Git Bash,输入ssh-keygen -C "github邮箱地址" -t rsa注意-C的C是大写,回车选择默认路径存放,然后设置密码。输入密码时光标是不会动的,我们也看不到输入了几个字符,淡定,不是哪里出问题了。密码可以不设,直接回车就行。然后找到存放路径下.ssh文件夹中的id_rsa.pub,copy里面的内容。GitHub里点头像 → 点settings → 点SSH and GPG keys → 点New SHH Key → 把刚才复制的内容丢到key栏,title随便取个 → 添加 → 搞定。

如果用SSH,有条语句是要改的,就是在Git中定义我们要把文件上传到哪个仓库时,地址是变了的。
HTTPS是
git remote add origin https://github.com/liu-xiao-cui/css_task2.git
而SSH是
git remote add origin [email protected]:liu-xiao-cui/css_task2.git

如果已经设置过remote origin了,它会提示已存在,要修改的话,应该用git remote set-url origin [email protected]:liu-xiao-cui/css_task2.git来设置。


再补充一点,我们可以在Git中配置我们的GitHub信息,这样push时会记录是谁干的。我们用git log查看日志时Author栏也会显示我们的信息。语句如下。

git config --global user.name "github用户名"

git config --global user.email "github邮箱地址"