欢迎使用CSDN-markdown编辑器

来源:互联网 发布:mac在windows截图 编辑:程序博客网 时间:2024/05/21 00:45

Git与Github的那些事

什么是git,它和svn的区别?
git是一个分布式版本控制工具。
GIT跟SVN一样有自己的集中式版本库或服务器。但,GIT更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上chect out代码后会在自己的机器上克隆一个自己的版本库。

什么是Github?
GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub(摘自百度),即github可以作为git的集中式版本库。

Git应用
本地版本控制
首先对要进行版本控制的文件夹git init
查看该文件与本地库之间的差异 git status
添加差异文件到本地库 git add +文件名(*代表所有差异文件)
提交到本地库 git commit -m ‘yourcommit’

git同步到github
首先添加要同步的远程github仓库的地址
git remote add origin git@github.com:xxxx/xxx.git
把本地仓库的版本同步到远程github仓库
git push -u origin master
以上就是基本操作

下面讨论一下实际一点的操作
由于主分支一般不会直接在上面进行开发,所以我们开发之前会进行创建分支的操作
git checkout -b dev(创建并且切换到分支dev)
当在dev分支完成任务后我们需要把dev分支合并到主分支上
首先切换到主分支
git checkout master
然后把dev分支的合并到master分支上
git merge dev(此时把dev的分支已经合并到主分支了)
合并分支后提交分支
git commit -m ‘your comment’
同步到远程仓库的主分支上
git push -u origin master

多人协作开发项目问题(假设A B C三个人)
首先 有一个人创建了项目 假设为A
然后B C作为协作开发者
A创建项目后邀请BC一起开发 具体操作github上如下
搜索BC二人并且邀请
BC需要接受邀请,点开github上的铃铛 接受邀请。
然后BC需要fork A的该项目到自己的github仓库
具体方法如下:
进入A的该项目仓库,点击fork按钮即可。

 问题:B或者C修改了项目之后怎么告诉A    这时候就用到我们常说的pr(pull request),B或者CforkA的项目到自己的远程仓库后,把fork后的自己的该项目clone到本地,并创建分支进行自己的一系列操作,操作完成后提交到自己的github仓库,并在仓库发送一个pull request请求,对方同意后即完成合并了.   问题:A合并项目后怎么把自己的本地仓库更新?    git pull即可(把远程分支pull到本地)  问题:B或者C修改项目后提交给A了,A合并了,B或C怎么保证自己的项目和A的一致?  原理:说的通俗一点就是把A的项目搞到自己的本地(类似于clone但不是),然后把本地的push到自己的远程仓库,从而完成了间接更新  具体如下  首先添加A的仓库  git remote add upstream git@github.com:xxx/xxx.git(A的地址) (叫upstream的原因?个人认为是 直译为上层流,由于你从A过来的,你的上层就是A 猜想而已)  然后把A的主分支down到本地   git fetch upstream   git merge upstream/master   这二个命令大致就是等于pull的意思,就是把A的最新的主分支pull到自己的本地仓库并和自己本地主分支进行合并   最后一步,把自己本地仓库(此时已经是从A那里获取的最新的分支了),上传到自己的github仓库   git push -u origin master   好了此时就间接的保证了B或C的github分支和A的一致了。 第一次写博客,请多见谅,除了前面概念的东西是抄的,其余的全部来自自己的理解。
原创粉丝点击