2014-02-25
在一个全新的Linux系统里,如果要修改自己在github里面的的某个项目。如果是修改某些文件,在github网站上就可以修改;如果要增加文件的话就要把项目克隆到本地,修改后在合并到github项目里。
下面的操作均在Linux Mint 16环境下。
1、生成ssh密钥
$ ssh-keygen -t rsa
这时候,在~/.ssh目录下会产生两个文件:id_rsa
和id_rsa.pub
。 登录github,进入“Account settings”,点击左侧的“SSH Keys”选项,在右侧点击“Add SSH Key”按钮,在Title项中输入标题,将~/.ssh/id_rsa.pub中的内容复制到Key对应的输入框里。点击“Add Key”按钮完成添加。

然后,测试连接:
$ ssh -T git@github.com
Hi letiantian! You've successfully authenticated, but GitHub does not provide shell access.
可以看到连接成功了。letiantian是笔者在github的用户名。
2、修改项目
安装git:
$ sudo apt-get install git
笔者在github上有一项目名为my-linux-config
用来保存一些linux系统的配置。现在,将这个项目克隆到本地~/my-linux-config
目录下:
$ cd ~
$ git clone https://github.com/letiantian/my-linux-config.git
Cloning into 'my-linux-config'...
remote: Reusing existing pack: 164, done.
remote: Total 164 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (164/164), 298.94 KiB | 133.00 KiB/s, done.
Resolving deltas: 100% (6/6), done.
Checking connectivity... done
$ cd my-linux-config
修改该项目。
注意,如果要删除的文件已经提交到git里,需要如下的方式删除:
git rm <filename>
修改文件后,
$ git add .
然后提交改动:
$ git commit -m "添加文件"
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got 'sunlt@myhost.(none)')
可以看到需要我们提供用户名和邮箱,按照提示添加即可。然后重新运行:
$ git commit -m "添加文件"
现在就是要把修改后的项目提交到github中去,我们要提交到master
这个主分支里面:
$ git push origin master
运行结果如下:
$ git push origin master
Username for 'https://github.com': letiantian
Password for 'https://letiantian@github.com':
Counting objects: 696, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (684/684), done.
Writing objects: 100% (695/695), 980.62 KiB | 0 bytes/s, done.
Total 695 (delta 20), reused 1 (delta 0)
To https://github.com/letiantian/my-linux-config.git
b35f662..fc15317 master -> master
3、相关资料
git - 简明指南:http://rogerdudler.github.io/git-guide/index.zh.html