GitHub
- GitHub是由Linux系统所创建的工具,名为git,由创建Linux本身的人Linus Torvalds。对于无论是开发人员还是使用开源软件的人。,它是开源软件的自动供应链。
- Github更像是一个集市,而集市内的摆摊者-就是程序员,算法分析师,数据分析师等有好想法和需要合作的人。一个好汉三个帮,GitHub既可以是一个小范围组织或个人的工作场所,也是一个具有各种open source(开放资源,代码,算法,想法)的地方。
- 每个项目都有自己的Repository,项目主导者身份位为Master而其余贡献者(Contributor)则为分支(Branch),形成一个主干-分支的树形结构。合作者通过Clone命令行讲Code下载到本地处理修改后再度推至服务器存储。
- 良好的可视化界面和便捷的Push方式,使得远距离,多人之间的精密和即时性合作成为可能。
- Git的各种优点导致了其在2017年的收入达到了$2亿的收入,因此被微软全权在去年七月以$7.5billion全资收购。
- 感兴趣的可以看看这篇英文文章:为什么微软要收购GitHub
注册
使用
- Start a project
- 创建一个新的Repository(项目储藏室),Public意味着别人都可以看到你的代码(免费),Private只有自己和团队成员可见(收费)
- 安装Git客户端(On Linux)
(1)如果是使用 Fedora (or any closely-related RPM-based distribution, such as RHEL or CentOS)使用
$ sudo dnf install git-all
(2)如果是Ubuntu(a Debian-based distribution)
$ sudo apt install git-all 4. 安装Git客户端(On Mac)
$ git --version
4.安装客户端(On window):
点击打开链接下载
5.如何Push项目到Repository(以自己项目为例)
- 建立Deep-Learning(RepositoryName)
- 打开Git bash, 在本地Git目录下建立自己的文件夹, mkdir 'git push'
- 获得自己的Git url
- 进入目标目录
5. 如果想Push PycharmProjects文件
shell> git init //初始化
shell> git add PycharmProjects //添加文件到git目录下,此时还没有push文件去服务器
shell> git add PycharmProjects //添加文件到git目录下,此时还没有push文件去服务器
shell> git status //检查文件状态,untracuked files以红色文字显示
shell> git commit -m " push pycharmprojects" // 写注释,在团队合作中尤为重要,介绍上传文件特性
shell> git remote add origin https:github.com/git用户名/项目名.git //将本地repository和远程repository连接起来(自己的Git url)
shell> git push -u origin master
如果想在从Master主干上创立一个新分支,并开始project1
shell> git branch - 这条命令用来检查你现在在什么分支还是主干上,如果是在Master branch上,master加亮显示(如图绿色)
shell> git checkout -b sheldon-feature1
- 这个命令创建一个新的分支,并将以前我们的例子中的主分支的所有代码复制到新的分支中
shell> mkdir project1
shell> cd project1
shell> git add 文件
shell> git commit -m "added file command"
- 对Sheldon-feature1分支命令的注释
shell> git push --set-upstream origin bob-feature1
为本地的Sheldon-feature1分支创建一个远程跟踪分支
如果小组成员Alice也想参与,如何实现
1. 首先Repository的拥有者需要邀请Alice作为一个contributor(Setting-Contributor) 2.在Alice被邀请后,她进行如下代码去操作shell> mkdir gitclones //创建她自己的工作文件夹
shell> cd gitclones //进入
shell> git clone https://<Alice's username>@github.com/文件夹名/Repository.git -克隆主文件到本地
shell> cd Deep-Learning //进入克隆后的主文件夹
shell> git checkout sheldon-feature1 -她一开始是在主分支上。这一声明改变了她的分支机构在Sheldon-feature1分支。她现在可以看到项目1的代码并进行必要的更改。
shell> cd project
shell> git add 文件
shell> git status
shell> git config user.email "alince@alice.com"
shell> git config user.name "Alice Smith"
shell> git commit -m "minor changes" //解释自己所做的工作
shell> git push - pushes the commit to bob-feature1 remote branch
3.如果Sheldon(master)想继续coding shell> git branch - to see 在哪个分支上
shell> git pull - 获得最新的代码,可以看到Alice所作的改变
1. 首先Repository的拥有者需要邀请Alice作为一个contributor(Setting-Contributor) 2.在Alice被邀请后,她进行如下代码去操作shell> mkdir gitclones //创建她自己的工作文件夹
shell> cd gitclones //进入
shell> git clone https://<Alice's username>@github.com/文件夹名/Repository.git -克隆主文件到本地
shell> cd Deep-Learning //进入克隆后的主文件夹
shell> git checkout sheldon-feature1 -她一开始是在主分支上。这一声明改变了她的分支机构在Sheldon-feature1分支。她现在可以看到项目1的代码并进行必要的更改。
shell> cd project
shell> git add 文件
shell> git status
shell> git config user.email "alince@alice.com"
shell> git config user.name "Alice Smith"
shell> git commit -m "minor changes" //解释自己所做的工作
shell> git push - pushes the commit to bob-feature1 remote branch
3.如果Sheldon(master)想继续coding shell> git branch - to see 在哪个分支上
shell> git pull - 获得最新的代码,可以看到Alice所作的改变