Github是一个分布式的代码管理工具,最开始是Linus开发用于管理Linux的开源代码。但是渐渐地已经成为如今最主流的分布式版本管理工具,许多人都使用它来管理自己的源代码。
1.注册Github账号及创建仓库:
首先注册Github账号,然后创建仓库(repository),免费用于只能创建公开(public)的仓库。
2.安装msysgit客户端:
下载地址:http://msysgit.github.io/
强烈不推荐使用图形化界面,因为我研究很久都不会用,记下几个简单的几个命令,就可以在类Unix的命令行下完成代码的上传。
3.配置Git:
首先在本地创建ssh key:
$ ssh-keygen -t rsa -C "your_email@youremail.com"
后面的your_email@youremail.com改为你的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。成功的话会在~/下生成.ssh文件夹,进去,打开id_rsa.pub,复制里面的key。
回到Github,进入Account Settings,左边选择SSH Keys,Add SSH Key,title随便填,粘贴key。为了验证是否成功,在git bash下输入:
$ ssh -T git@Github.com
如果是第一次的会提示是否continue,输入yes就会看到:You’ve successfully authenticated, but Github does not provide shell access 。这就表示已成功连上Github。
接下来我们要做的就是把本地仓库传到Github上去,在此之前还需要设置username和email,因为Github每次commit都会记录他们。
$ git config --global user.name "your name"
$ git config --global user.email "your_email@youremail.com"
进入要上传的仓库,右键git bash,添加远程地址:
$ git remote add origin git@Github.com:yourName/yourRepo.git
后面的yourName和yourRepo表示你再Github的用户名和刚才新建的仓库,加完之后进入.git,打开config,这里会多出一个remote “origin”内容,这就是刚才添加的远程地址,也可以直接修改config来配置远程地址。
4.上传并提交代码:
在git bash中,转到要上传的项目的文件夹中;
执行$ git init;
生成用于记录版本库历史记录的.git目录
执行$ git touch README;
添加描述性文件。
执行$ git add .;
把我们要提交的文件的信息添加到索引库中,.代表所有文件,也可以只指定特定要上传的文件。
执行$ git commit -m 'OASystem';
添加commit信息,主要是用于描述项目的主要信息。
执行$ git remote add origin1 git@github.com:55466867/OASystem.git;
和Github建立远程连接,55466867是我的Github账户名,OASystem是之前创建的仓库名。
执行$ git push -u origin master;
将文件上传推送到Github上去。
5.下载别人的项目代码:
以用户名为username的用户为例,使用clone命令,下载项目名为test的项目。
$ gitclone git@github.com:username/test.git
注意事项:
若文件名有空格,可以使用单引号括起来。
使用以下命令可以配置编码格式:
$ git config --global i18n.commitencoding utf-8
附录(常用的git命令,网上找的非原创):
git status 看状态
git log 看你commit的日志
git commit -a 提交当前repos的所有的改变
git commit -m 添加commit信息
1) 远程仓库相关命令
检出仓库:$ git clone git://github.com/jquery/jquery.git
查看远程仓库:$ git remote -v
添加远程仓库:$ git remote add [name] [url]
删除远程仓库:$ git remote rm [name]
拉取远程仓库:$ git pull [remoteName] [localBranchName]
推送远程仓库:$ git push [remoteName] [localBranchName]
2)分支(branch)操作相关命令
查看本地分支:$ git branch
查看远程分支:$ git branch -r
创建本地分支:$ git branch [name] ----注意新分支创建后不会自动切换为当前分支
切换分支:$ git checkout [name]
创建新分支并立即切换到新分支:$ git checkout -b [name]
删除分支:$ git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项
合并分支:$ git merge [name] ----将名称为[name]的分支与当前分支合并
创建远程分支(本地分支push到远程):$ git push origin [name]
删除远程分支:$ git push origin :heads/[name]
3)版本(tag)操作相关命令
查看版本:$ git tag
创建版本:$ git tag [name]
删除版本:$ git tag -d [name]
查看远程版本:$ git tag -r
创建远程版本(本地版本push到远程):$ git push origin [name]
删除远程版本:$ git push origin :refs/tags/[name]
4) 子模块(submodule)相关操作命令
添加子模块:$ git submodule add [url] [path]
初始化子模块:$ git submodule init ----只在首次检出仓库时运行一次就行
更新子模块:$ git submodule update ----每次更新或切换分支后都需要运行一下
删除子模块:$ git rm --cached [path]
5)忽略一些文件、文件夹不提交
在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如:
target
bin
*.db