前言
在写毕业论文的过程中,我有这样的需求,希望将撰写毕业论文过程中的一些资料备份到网络上,尤其是对毕业论文的备份。但是很少有网盘能做到对文件的增量备份,所以权衡之下选择github进行重要资料的备份,通过git命令进行一些操作。
下面是在使用git将本地文件备份到github过程中的一些操作,写下来,以防止忘记。主要步骤如下:
- 本地生成SSH key并复制到github上
- 本地创建文件夹,并Git初始化,添加文件到Git,commit
- 将远程github仓库地址和本地仓库进行绑定
- 推送到远程库
准备工作
Git和GitHub使用SSH加密传输,所以要在你的本地机器上和GitHub服务器上都保留一份加密和解密的规则,这份规则就是SSH keys。
需要先在本地生成key再保存到GitHub上,过程如下:打开git bash,输入一下命令
cd ~/.ssh
ls
查看ssh文件夹中是否有id_isa
和id_isa.pub
两个文件,没有的话按照如下步骤创建:
ssh-keygen -t rsa -C "your_github_mail@xxx.com" //生成key
enter your name and passport,can be default by typing enter //输入用户名和密码,按enter都默认为空
cat ~/.ssh/id_rsa.pub //查看密钥内容
复制以上密钥,打开GitHub网站的settings
->SSH and GPG keys
->new ssh key
->输入密钥内容保存
,再输入一下命令查看是否设置成功
ssh git@github.com
以下表示配置成功
$ ssh git@github.com
PTY allocation request failed on channel 0
Hi xxxx! You've successfully authenticated, but GitHub does not provide shellaccess.
Connection to github.com closed.
开始管理
- 打开GitHub新建一个repo,注意在
Initialize this repository with a README
这个选项不要勾选,保证repo里面什么都没有,否则要拉取到本地进行融合一下才能进行同步,如果一不小心勾选了,勾选之后的操作见PS1。 - 按照一下几行命令创建本地仓库->添加文件->同步到远程github仓库
git init //创建/初始化本地仓库
git add xxx //将该文件夹下的xxx文件添加到本地仓库,以监控其内容的改变
git add . //将该文件夹下的所有文件都添加到本地仓库并进行内容改动的监控
git commit -m "first comnit" //将改动过得文件提交(commit)到本地仓库,等待推送到远程
git remote add origin git@github.com/xxx //将第1步创建的远程仓库的ssh地址和本地仓库进行连接
git push -u origin master //将本地仓库推送到远程仓库
在有文件被改动之后,重新执行第2,4,6行的命令即可
PS
1.刚开始时远程仓库包含有其他文件而本地仓库没有包含,需要将远程仓库的内容融合到本地之后再执行commit->push的操作,命令如下:
git pull --rebase origin master //pull = fetch + merge