git

Git版本管理工具的作用:1、备份文件(类似U盘,网盘);2、记录历史(有各个阶段的代码历史版本);3、多端共享 (上传到云端可以供多个设备查看)协作(可以在家工作,也可以在公司);4、团队协作(代码整合,多人共同完成一个项目);5、(文件恢复)回到过去
版本管理工具发展:cvs(始祖 集中式  网络环境)->svn(2000年集中式   网络环境)->git(2005年 分布式  无网环境)->github(程序猿托管网站)
集中式:中心服务器,svn可以还原到某个时间段   需要有一个服务器集中管理软件版本,要联网。 分布式:效率高 每一个拥有版本库的人都可以在不下载的方式下快速完成代码提交、修改等操作
GitHub官网-->Find out more-->https://desktop.github.com/-->下载Git(Hub)-->默认安装
安装客户端错误的小伙伴来:
1. 打开控制面板 Internet 选项“安全”选项卡“受信任的站点”点击“站点”按钮。
2. 弹出的窗口中的文本框中输入点击“添加” https://github-windows.s3.amazonaws.com/ 
3. 在 Internet Explorer 中打开 http://github-windows.s3.amazonaws.com/GitHub.application,即开始正常下载安装。
GitHub是一个托管网站,也就是一个存放代码的地方,但是怎么把代码弄上去呢?复制,粘贴? 肯定不是,这时候就要使用git这个版本工具了,当然git不是专门为这个网站设计的,而是网站使用了这个工具。
linux 下安装git:yum install git,下载完成后选择Y进行安装 <2>yes  <3>git --help
注册github账号:通过github客户端进入github官网 进行注册,邮箱验证, 登陆账号;
Git是一个软件,是一个版本分布式管理工具。GitHub是一个网站,用来托管各种项目的,不花钱也能用,不过需要将自己的代码公开。就好像有一个舞台,不花钱向上也行就必须裸上,花点钱能有更多的服务想裸也行想穿衣服也行。Git和GitHub的关系,除了前三个字符一样,就是往GitHub这个往上托管代码、克隆代码都能使用Git这个工具,也能和GitHub上的一些人或者团队一起开发一个项目。
创建自己的项目
1、New repository。2、新建项目的页面中:项目名称repository name(不可用中文),描述Description(可用中文),他人是否可见(public/private),是否加载一个README(勾选的话创建)
新建一个项目:1. 安装Git2. 创建仓库3. Fork仓库4. 一起协作
linux检出项目 mkdir test   cd test   git clone http://doubi.com.git         git clone 项目地址       这是克隆一个项目
git常用命令
1:git clone——复制一个项目2:git status——查看项目的状态3:git add——将项目从工作区提交到暂存区4:git commit——将项目从暂存区提交到分支5:git reset——恢复某个提交6:git pull——拉取项目7:git push——推送项目8:git log——查看日志9:git --help——查看帮助(这个非常的重要,可以通过此命令学习许许多多的命令的使用方式)10:git --version——查看版本
Linux环境下第一次提交项目:
vi 日记  新增一个文件名为“日记”的文件git status  工作区的状态git add 日记  建立跟踪 git commit  提交变更
----------------------------------------
填写变更的评论,方便以后查看此次修改的目的。
i  插入
:wq  保存并退出
---------------------------------------
姓名和邮件地址基于登录名和主机名进行自动设置,可以检查它们正确与否;设置以免再次出现此类信息;
git config --global user.name "Your Name"  Your Name改为自己的名字
git config --global user.email "[email protected]"  [email protected]改为自己的邮箱
git commit --amend   --reset-author修正本次提交所使用的身份
git push  输入github用户名和密码  git status  工作区的状态
## 向仓库中添加文件
// 新建文件    touch a1.php             // 添加文件到暂存区      git add a1.php                  // 提交到本地仓库     git commit -m'提交文件到仓库'
// 提交到 GitHub         git push
检出github项目到windows平台,当然前提是本机windows平台要装上windows班的github客户端。
1、登录自己的github的网页账户,找到自己要复制的项目,后面有个桌面状的按钮,点击,弹出提醒你保存的位置
2。保存好之后,本地就有了一个项目对应的影响,一般常见的操作就是下面的几个
增删查改本地项目里的文件   填写增删查改的原因     同步到github端
clone in desktop,检测本地的desktop客户端,将文件克隆到本地。
windows界面客户端,clone想要获取的项目,然后open in explore打开本地文件,添加文件或者修改文件,然后添加描述,进行commit,再进行同步将文件提交到github仓库                              github 客户端下载,可以快速 commit 到 github 版本库上
解决冲突是发生在:   同一时间,同一块代码,大家都修改了,产生代码冲突。
若是在A分支下面  push的时候圆写成了B分支   这种情况如何处理呢?
这一节的解决提交A和提交B的冲突,比较有用.
假设同一个F文件,被操作者A和B都修改了.
解决思路:
1. A先提交文件F,正常提交,无冲突问题.
2. B提交文件F时,报冲突.
3. B需要执行: git pull 操作,会自动将服务器端最新文件,合并到本地F.(该文件F中,同时保留2个不同的修改点)
4. B执行: git status 操作,显示冲突文件信息.
5. B执行: git diff 操作,显示文件F中的冲突点.
6. B执行: 用vi 打开 文件F, 查看到冲突处标记 <<<<>>>>,手动删减,保留需要确认的部分.
7. 到这里,B本机的文件F已经在同步服务器端最新的F基础上,做了修改,变成"更加新的文件F"(比服务器端还新).
8. 这样,再提交文件F.就不存在冲突问题.剩下的操作,就是正常的提交步骤.
9. git add XXXX
10. git commit "xxxxyww"
11. git push
12. 输入账号名,密码.
13. 这样,就将"更加新的文件F"上传到服务器端.解决冲突问题.
14. 这个冲突解决问题,实际上和其他版本管理工具,没有啥本质区别.
 切换至A用户,再pull才能保持与远程一致
windows下冲突进行合并修改后再次提交
版本回滚操作步骤:
1. 命令: git log // 显示所有提交记录.2. 在所有提交记录中,选择需要回退到的commit ID(一个长字符串),复制.
3. 命令: git reset --hard XXYYZCCRERR // 最后一串是commit ID.完成回滚操作.4. 命令: git log // 显示新的提交记录.
这里 利用 git reset 命令,可以任意回滚到过去,同时也可以穿越到未来.很方便.(回到未来 (fast -forward)
git reflog查看该用户的所有操作git reset --hard commit id
建立里程碑,版本号
操作步骤:
1. 在github网站上.进入项目首页.
2. 横栏按钮(commits, branches, release等),找到release按钮.
3. 找到按钮:draft a new release,点击进入下一页面.
4. 填入版本号,以及说明信息.
5. 完成后,点击publish release,将软件发布出去.
6. 这样就完成里程碑建立,同时会自动生成zip下载链接.
里程碑 = 稳定版本号.
里程碑的含义是: 一个阶段比较稳定的版本,正式提交发布出去.提供zip下载.
分支开发,例子场景,已经发布了一个版本的代码,有bug,但是master主分支已经开发了新的未经测试的功能代码。
用分支解决bug            在github建立新的分支:          点击“+”,起名新的分支名称
使用merge功能将修改好的代码合并到新的开发中的项目中去:bug-->master-->merge             
新建分支Master-->Manage-->+-->分支                合并到主干  Master-->Manage-->拖动-->bug>master-->Merge
http://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging
$ git checkout -b hotfix   $ vim xxx        $ git commit -a -m 'fixed in file xxx'           $ git checkout master
$ git merge hotfix             $ git branch -d hotfix
另一种分支方式,更适合开源软件
修改提交发布新分支      右键点击项目名称,view in github,点击按钮merge push request,commit
git的经验总结:
1:多用客户端和工具,少用命令行,除非你是在linux服务器上直接开放
2:每次提交前,一定git diff自己的代码,以免提交错误的代码
3:下班回家前,一定整理好自己的工作区,今日事今日毕
4:并行的项目,一定使用分支开发
5:遇到冲突的时候,一定搞明白冲突的原因,千万不要随意丢弃别人的代码
6:产品发布后,一定要打一个tag,方便将来拉分支修复bug
想提交的代码,测试   提交前先拉取一下最新的代码,若有问题解决掉,不清楚的代码不要动 提交时要写注释
每天写日志,这样每天的工作都是有据可查的,写日报、周报、年终总结、个人总结等都有帮助,任何事情是类似的,先弄明白需求,理清思路在动手,防止走弯路防止做错方向。


 
 

你可能感兴趣的:(git)