标签:user rem 源代码 辅助 lap git stash 协同 content
是否依稀记得你的毕业论文?
毕业论文_初稿.doc 毕业论文_修改1.doc 毕业论文_修改2.doc 毕业论文_修改3.doc 毕业论文_完整版1.doc 毕业论文_完整版2.doc 毕业论文_完整版3.doc 毕业论文_最终版1.doc 毕业论文_最终版2.doc 毕业论文_死也不改版.doc ...
是否还记得老师让你重新自己写的项目?
blog1 blog2 blog3 blog4 ...
以上是使用文件或文件夹进行版本管理,以上方式有缺点:
为了解决上述问题,应运而生了版本管理工具:
版本管理工具都一般包含客户端和服务端:
GIT
- Git 是一个开源的分布式版本控制软件,用以有效、高速的处理从很小到非常大的项目版本管理。
GitHub等
- GitHub、GitCafe、BitBucket和GitLab等是基于Git版本控制的远程文件托管平台。
使用场景:
- 无远程:在本地 .git 文件夹内维护历时文件
- 有远程:在本地 .git 文件夹内维护历时文件,同时也将历时文件托管在远程仓库
PS:
- 集中式:远程服务器保存所有版本,用户客户端有某个版本
- 分布式:远程服务器保存所有版本,用户客户端有所有版本
参考指南:GitHub Cheat Sheet (PDF) | Visual Git Cheat Sheet (SVG | PNG)
下载:https://git-scm.com/downloads
PS: 注册GitHub、GitCafe、BitBucket和GitLab等账户,以便于将文件托管在远程。
a. 常用命令:
cd - 进入程序目录 git init - 创建一个空的Git仓库或重新初始化一个现有的 git config --global user.name "John Doe" - 设置用户名 git config --global user.email johndoe@example.com - 设置电子邮件地址 git status - 查看状态 git add [file] - 将文件从《工作区》提交到《暂存区》 git commit -m "提交信息" - 将文件从《暂存区》提交到《版本库 》 git rm --cached <file> - 将文件从《暂存区》或《版本库》删除文件 工作区:ls - 查看工作区 暂存区:git ls-files -s - 查看暂存区和版本库 版本库:git ls-tree HEAD - 查看版本库
b.场景:
在原来代码工作区操作,开发了半个月后,临时发现线上程序有bug需要马上修复,怎么办? 答案:保留开发到一半的代码,从线上拷贝一份代码到其他路径,在原来基础上修改bug,提交;再次回到正在开发的路径继续写代码... Git解决方法:利用分支,Git中的分支相当于拷贝一份代码,应用方法以及场景如下: 【代码已上线】 已上线代码在master分支上(默认创建分支) 【开发新功能到一半】 git branch dev 【创建新分支】 git checkout dev 【切换进入dev分支】 开发程序,仅在dev分支中修改文件,不影响其他分支.... 开发到一半时,突然出现一个bug需要紧急修复 【将已经开发的功能先提交】 git add . git commit -m ‘临时提交开发到一半的代码‘ 或【将已开发的功能先临时保存】 git stash git stash list 查看都有哪些临时保存列表 git stash apply 从临时列表中取出 git stash drop 从临时列表中删除 【临时修复bug】 git checkout master 【切换到master分支】 修复bug并提交 git add . git commit -m ‘紧急修复bug‘ 创建新分支,修复bug并提交,合并到master分支 git branch bug git checkout bug 修复bug... git add . git commit -m ‘紧急修复bug‘ git checkout master git merge bug 【继续开发新功能】 git checkout dev 开发完毕,上线 git checkout master git merge dev Auto-merging readme CONFLICT (content): Merge conflict in readme Automatic merge failed; fix conflicts and then commit the result. 出现冲突,解决冲突 git add . git commit -m ‘解决冲突‘
【创建远程仓库project】 注册github,并在其中创建一个project,创建成功后会给当前project生成一个URL用于让本地和远程连接,如:http://47.93.4.198/wupeiqi/pondo.git 【添加远程仓库URL】 本地执行命令,添加远程连接:git remote add origin http://47.93.4.198/wupeiqi/pondo.git 【将本地分支内容推送到远程仓库】 git push -u origin master PS: 首次推送需要将本地分支同步到远程分支 git push --set-upstream origin master git push --set-upstream origin dev 回家 【从远程仓库克隆到本地某个目录】 git clone http://47.93.4.198/wupeiqi/pondo.git cd pondo 【clone后本地只有master分支,同步其他分支】 git branch dev origin/dev git checkout dev 【在家继续开发】 ... 【提交到远程版本库】 git add . git commit -m ‘在家开发‘ 第二天到公司 【从远程仓库获取最新内容】 git pull origin dev 或 git fetch origin dev git merge origin/dev 【继续开发功能】 ... 【提交到远程版本库】 git add . git commit -m ‘在家开发‘ 第二天回家: 【从远程仓库获取最新内容】 git pull origin dev 或 git fetch origin dev git merge origin/dev 【继续开发功能】 ... 【提交到远程版本库】 git add . git commit -m ‘在家开发‘ 重复进行中.... PS: 如果本地有未提交的内容,则需要 - git stash先暂时存储 - git pull origin dev 从远程获取最新代码 - git stash pop 将暂时存储代码和最新代码进行合并,解决冲突 如果在公司的代码只是commit,忘记push到远程;在家又新开发了功能;再次回到公司时,则需要: - git pull origin dev - 解决冲突 - git add . - git commit -m ‘解决冲突‘ - git push origin dev 此次会把上次忘记push和本次解决冲突一起提交到远程
c.冲突:
第一种方式:stash
第二种方式:分支 branch
d.协同开发
e.fork
注意:协同开发时,在解决完冲突之后,应该跟上一个提交的人进行沟通。
标签:user rem 源代码 辅助 lap git stash 协同 content
原文地址:http://www.cnblogs.com/luchuangao/p/7300905.html