本文于2017年12月10号发布在个人博客中,因为个人博客关闭,全部迁移到优快云,以下是正文:
在github中,我们注册了github账号,并创建了第一个项目“HelloWorld”,今天来说说如何提交代码到github
在提交代码之前,我们需要安装git client,可以参考这里
提交代码流程
提交代码的正常流程:
- 从github上clone代码到本地:git clone git@github.com:anyscoding/HelloWorld.git
- 在本地编码
- 编码完成后,将修改缓存:git add /path/to/all/edited/files。git add还可以将新建的文件让本地仓库跟踪管理起来
- 缓存区的代码,可以通过:git commit提交到本地仓库
- 本地仓库的代码通过:git push推送到github
如下图所示:
初始配置
如果你是第一次使用git向github提交代码,需要进行一些初始配置
备注:
git:分布式版本控制系统
github:基于git的免费的项目托管网站
git config
在使用git提交代码之前,应该进行一些初始化配置:
git config --global user.name "anyscoding"
git config --global user.email anyscoding@sina.com
ssh key
git使用多种传输协议:ssh、https,一般使用ssh
如果使用ssh协议进行传输,需要将本地的ssh pub key上传到github上
生成ssh key:
复制:~/.ssh/id_rsa.pub的内容,打开github,导航到:
git clone
github的项目页面如下:
github使用:ssh或者https协议,clone时可以选择任意一种,本文以ssh协议为例进行演示
在红色方框中点击【Use SSH】,下方文本框便显示项目的ssh地址:git@github.com:anyscoding/HelloWorld.git,点击文本框后的按钮即可复制项目地址
在本地打开一个终端(windows用户是Git Bash),输入命令:
git clone git@github.com:anyscoding/HelloWorld.git
clone 过程如下图:
clone 完成后进入到项目目录,路径后的:
/d/GitHub/HelloWorld (master)
(master)表示分支名称
coding
在创建项目时,我们勾选了【Initialize this repository with a README】,默认给我创建了README.md文件,本文以修改README.md为例进行演示
如图所示,在README.md文件中追加了一行“add new line”
通过命令:
git status
可以查看当前修改
git add
在项目中的所有文件都应该被git跟踪管理起来,对于新创建的文件可以使用命令(已经被git跟踪管理的文件被修改后同样需要git add加入到被提交列表中):
git add /path/to/newfile
让git跟踪文件,为了更加形象的演示,我们在README.md同目录下创建一个新的文件:newfile
再次使用“git status”可以看到:【Untracked files】下方多了newfile,git提示“(use “git add …” to include in what will be committed)”
“git add”后修改和新增的文件都变成了绿色
git commit
git commit -m "commit message"
git commit有许多参数,-m可以给本次提交做简单的描述,或者不带任何参数,类似下面这样:
git commit
git会使用配置的编辑器来编辑提交内容,与git commit -m “msg”相比,可以更加详细的描述每次提交的修改内容,从图中可以看出:
push code to remote
1. add new line to README.md
2. add a new file
第一行为黄色字体,简要概括本次提交内容,紧接着空一行,然后详细描述本次提交的修改内容等
git commit把修改提交到本地仓库,要想让其他开发者看到,需要将代码push到远端仓库
git push
an@DESKTOP-IEU7HQD MINGW64 /d/GitHub/HelloWorld (master)
$ git push
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 395 bytes | 197.00 KiB/s, done.
Total 4 (delta 0), reused 0 (delta 0)
To github.com:anyscoding/HelloWorld.git
4a3f515..e9cec20 master -> master
OK,你的代码已经提交到github了