Open songziming opened 9 years ago
新技能get!子明辛苦了,剑锋你抽时间把注意事项告诉大家,要正式开发了
发自Thor
Song Ziming notifications@github.com编写:
这一部分将以Git的使用为主
许多人搞不懂Git与Github的区别。Git是一个工具,Github是一个使用Git并提供项目托管服务的网站,没有Github,Git照样能用。项目托管不一定Github,像BitBucket、CSDN Code、Git Cafe都是提供Git项目托管的服务。
如果你用的是Linux,只需使用系统的包管理工具安装Git即可,例如在Ubuntu下,只需输入sudo apt-get install git
就可以了。Windows下,访问Git-scm并点击页面右侧的“Download For Windows”链接,下载并安装Git。
这里要明确一点,Github也有Window客户端,但这只是Github客户端,而非Git,不要混淆。
Git安装完成后,Windows系统中会多一个程序“Git Bash”,启动它,将会看到一个命令行窗口,在其中可以输入常用的Linux命令,也包括git。首先要做的,是配置Git。
Windows系统打开Git Bash,Linux系统直接打开终端,输入以下内容(将“你的名字”、“你的邮箱”替换成对应内容)
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
git config --global push.default simple
解释一下,使用Git进行协作开发时,有必要在日志中记录下某次修改是谁做的,该人怎样联系。这些信息就是配置阶段设置的,配置好这些信息之后,每次执行git commit
就会自动将你的名字和邮箱记录在日志文件中。
版本控制系统(不仅是Git)中,仓库(repository)是一个重要概念,你可以将仓库理解为一个项目的完整源代码的集合。Git可以方便地对仓库进行管理要创建一个仓库,只需要新建一个目录,然后在这个目录下(假设你知道mkdir、cd)执行git init
,就在该目录中创建了一个空的仓库,这样,像git add
、git commit
这类的指令才能够执行。
实际使用中,通常是在Github中创建一个项目,再检出到本地。因为git init
并没有添加任何上游仓库。检出也叫克隆,就是把上游仓库的内容复制一份,存在本地,方法如下:
git clone 上游仓库地址
一般上游仓库都是存在其他计算机上的,需要通过网络访问。例如Hippocampas项目,当你打开Github中该项目的页面时,右侧会有一个HTTPS clone url
,如下图
里面就是Github上Hippocampas仓库的地址。
本地仓库有三棵“树”,第一个是“工作目录”,也就是项目文件夹,它保存着项目的实际文件;第二棵“树”是缓存区,保存对项目文件的临时改动;第三棵树是HEAD,这棵树表示最近一次提交的结果。
首先开发者编写代码,对项目文件进行修改,工作目录的状态发生了变化,缓存区和HEAD均未变。执行git add --all
将工作目录的改动添加到缓存区(git add --all
记录所有的改动,也可以用git add 文件名
记录针对特定文件的改动),这样缓存区状态更新,HEAD未变。执行git commit -m "在这里写一点提交信息"
,缓冲区的变更提交到HEAD,这样,实际改动就完成了提交。
但是,这样提交仅仅是提交到本地。如果没有上游仓库,做到这一步就足够了,当上有仓库存在时,可以用git push
推送到上游仓库。如果别人推送到了上游仓库,以执行git pull
将上游仓库更新到本地(一个好习惯是:每次工作前,先进行一次git pull
)。
总结一下,如果不涉及分支,git的工作流程就是下面的几步:
git pull
git add --all
git commit -m "随便写点东西"
git push
Reply to this email directly or view it on GitHub: https://github.com/songziming/hippocampus/issues/5
我这周五回来。。。反正已经写了一部分了,你们先弄着~每次例会的东西都整理好我回来研究照做~
如果我在push的前一刻有人先push了,那不就意味着我是在过时的版本上做的修改,应该怎么解决?
这就是我假设的情景,很难解决。我当时的做法大概是把新版本pull到一个新项目里,然后将master回退,再将pull下来的版本和我的修改手动合并,再进行一次性的提交。或者回退后把pull下的新版本和我的版本各开分支再merge……总之恶心得要死。
王剑锋 Jeffrey Wang
北京航空航天大学 软件学院 2012级本科生 | Undergraduate of School of Software, Beihang University
E-mail:wjfwzzc@gmail.com Skype:Jeffreywzzc Mobile:+86 156 5290 9590
Address:北京市昌平区沙河高教园南三街9号 | No.9 Nansan Street, Shahe Higher Education Park, Changping District, Beijing Zip Code:102206
发自我的小米手机
Vincent notifications@github.com编写:
如果我在push的前一刻有人先push了,那不就意味着我是在过时的版本上做的修改,应该怎么解决?
— Reply to this email directly or view it on GitHub.
通过创建分支可以解决吗,每次都是进行合并操作
发自Thor
Vincent notifications@github.com编写:
如果我在push的前一刻有人先push了,那不就意味着我是在过时的版本上做的修改,应该怎么解决?
Reply to this email directly or view it on GitHub: https://github.com/songziming/hippocampus/issues/5#issuecomment-48920257
我认为分工合理的话就不会出现这个问题,如果出现了问题,那么谁先遇到问题谁就来解决问题。(个人理解)
许多人搞不懂Git与Github的区别。Git是一个工具,Github是一个使用Git并提供项目托管服务的网站,没有Github,Git照样能用。项目托管不一定Github,像BitBucket、CSDN Code、Git Cafe都是提供Git项目托管的服务。
安装配置Git
如果你用的是Linux,只需使用系统的包管理工具安装Git即可,例如在Ubuntu下,只需输入
sudo apt-get install git
就可以了。Windows下,访问Git-scm并点击页面右侧的“Download For Windows”链接,下载并安装Git。这里要明确一点,Github也有Window客户端,但这只是Github客户端,而非Git,不要混淆。
Git安装完成后,Windows系统中会多一个程序“Git Bash”,启动它,将会看到一个命令行窗口,在其中可以输入常用的Linux命令,也包括git。首先要做的,是配置Git。
Windows系统打开Git Bash,Linux系统直接打开终端,输入以下内容(将“你的名字”、“你的邮箱”替换成对应内容)
解释一下,使用Git进行协作开发时,有必要在日志中记录下某次修改是谁做的,该人怎样联系。这些信息就是配置阶段设置的,配置好这些信息之后,每次执行
git commit
就会自动将你的名字和邮箱记录在日志文件中。创建仓库
版本控制系统(不仅是Git)中,仓库(repository)是一个重要概念,你可以将仓库理解为一个项目的完整源代码的集合。Git可以方便地对仓库进行管理要创建一个仓库,只需要新建一个目录,然后在这个目录下(假设你知道mkdir、cd)执行
git init
,就在该目录中创建了一个空的仓库,这样,像git add
、git commit
这类的指令才能够执行。检出仓库
实际使用中,通常是在Github中创建一个项目,再检出到本地。因为
git init
并没有添加任何上游仓库。检出也叫克隆,就是把上游仓库的内容复制一份,存在本地,方法如下:一般上游仓库都是存在其他计算机上的,需要通过网络访问。例如Hippocampas项目,当你打开Github中该项目的页面时,右侧会有一个
HTTPS clone url
,如下图里面就是Github上Hippocampas仓库的地址。
工作流
本地仓库有三棵“树”,第一个是“工作目录”,也就是项目文件夹,它保存着项目的实际文件;第二棵“树”是缓存区,保存对项目文件的临时改动;第三棵树是HEAD,这棵树表示最近一次提交的结果。
首先开发者编写代码,对项目文件进行修改,工作目录的状态发生了变化,缓存区和HEAD均未变。执行
git add --all
将工作目录的改动添加到缓存区(git add --all
记录所有的改动,也可以用git add 文件名
记录针对特定文件的改动),这样缓存区状态更新,HEAD未变。执行git commit -m "在这里写一点提交信息"
,缓冲区的变更提交到HEAD,这样,实际改动就完成了提交。但是,这样提交仅仅是提交到本地。如果没有上游仓库,做到这一步就足够了,当上有仓库存在时,可以用
git push
推送到上游仓库。如果别人推送到了上游仓库,以执行git pull
将上游仓库更新到本地(一个好习惯是:每次工作前,先进行一次git pull
)。总结一下,如果不涉及分支,git的工作流程就是下面的几步:
git pull
git add --all
git commit -m "随便写点东西"
git push