前端软技能之一——Git 以及 Github

Git 以及 Github 简介

Git是一个分布式的版本控制系统

GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。

使用

  • 点击下载安装git
  • 点击注册github
  • 配置Git:

    首先在本地创建ssh key;

    cd .ssh
    ssh-keygen -t rsa -C "your_email@address"
    			

    之后会要求确认路径和输入密码,无需求的话就一直回车吧。如果成功会在默认路径下生成.ssh文件夹,进去,打开id_rsa.pub,复制里面的key。

    回到github,进入Account Settings,选择SSH Keys,Add SSH Key,title随意,将ssh-key粘贴进去。可以在 git bash下以下代码验证是否成功:

    $ ssh -T git@github.com
    			

    如果是第一次的会提示是否continue,输入yes就会看到:You’ve successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github。

    接下来我们要做的是把本地仓库推送到 github ,在此之前还需配置git基本信息:

    git config --global user.name "your Real Name"
    git config --global user.email "you@email.address"
    #查看设置情况    
    git config --get user.name
    git config --get user.email
    			
  • 建立仓库:

    在git bash里找到你的项目目录,代码如下:

    git init
    			

    或者直接右键 git bash here

    如上操作项目目录里就会有.git的影藏目录

  • 初始化项目,上传、提交:

    git add .
    			

    后面的一个 “.” , 这是添加所有文件的情况,如果愿意,你也可以添加特定的几个文件,比如git add readme.txt等等。之后就可以做我们的first commit到仓库里了。

    git commit -m 'first commit'
    			

    设置项目远程版本库地址

    git remote add origin master git@github.com:你的github用户名/你的github项目名.git
    #错误提示:
    fatal: remote origin already exists.
    #解决办法:
    git remote rm origin
    			

    -m 参数以及后面的字符串是添加说明

    提交

    git push origin master
    #错误提示:
    error: failed to push som refs to ........
    #解决办法,先pull 下来 再push 上去
    git pull origin master
    git push origin
    			

    修改完代码后,使用git status可以查看文件的差别。之后git commit提交本次修改,git push上传到github。

  • 修改代码:

    提交代码至本地版本库,即使代码已经加到版本库,但做过改动,依然需要add

    git add test.js
    git commit -m 'commit'
    #或者 可以减少add这一步
    git commit -a
    			

以上就是 最基本的操作了,接下来学习学习其他操作:

  • 标签

    常用于版本发布

    列出标签

    $ git tag # 在控制台打印出当前仓库的所有标签 
    $ git tag -l 'v0.1.*' # 搜索符合模式的标签 
    			

    添加标签

    git标签分为两种类型:轻量标签和附注标签。轻量标签是指向提交对象的引用,附注标签则是仓库中的一个独立对象。建议使用附注标签。

    创建轻量标签

    git tag v0.1.2-light  
    			

    创建附注标签

    git tag -a v0.1.2 -m "发布0.1.2版本"
    			

    创建轻量标签不需要传递参数,直接指定标签名称即可。

    创建附注标签时,参数a即annotated的缩写,指定标签类型,后附标签名。参数m指定标签说明,说明信息会保存在标签对象中。

    查看标签信息

    git show v0.1.2 
    			

    删除标签

    git tag -d v0.1.2 # 删除标签
    			

    标签发布

    git push origin v0.1.2 # 将v0.1.2标签提交到git服务器 
    $ git push origin --tags # 将本地所有标签一次性提交到git服务器
    			
  • gitignore文件

    .gitignore顾名思义就是告诉git需要忽略的文件,这是一个很重要并且很实用的文件。一般我们写完代码后会执行编译、调试等操作,这期间会产生很多中间文件和可执行文件,这些都不是代码文件,是不需要git来管理的。我们在git status的时候会看到很多这样的文件,如果用git add -A来添加的话会把他们都加进去,而手动一个个添加的话也太麻烦了。这时我们就需要.gitignore了。

  • 拉分支
    git clone addres...
    git checkout stg
    
    #分支已经存在的情况
    Branch stg set up to track remote branch stg from origin.
    Switched to a new branch 'stg'
    
    #分支不存在
    error: pathspec 'stg' did not match any file(s) known to git.
    			

    判断branch 代码比master 新, 保证已经发布的master代码被合并到过branch上

    前提本地已经有该分支的代码

    git log stg ..master
    			
  • 开发分支

    #显示存在的所有分支
    git branch -a
    
    #切换到master
    git checkout master
    #切换到branch new1
    git checkout new1
    
    #fetch最新代码
    git fetch origin master
    
    #显示分支列表,包括远程。
    git branch -a
    git fetch -p origin
    
    #####################
    
    #创建分支new1
    git branch new1
    
    #从master中获取新的代码
    git pull origin master
    
    #修改代码,后提交.这里add不仅使用于新增的文件,对于第二次修改的文件,也需要这样写
    git add *.js
    git commit
    
    #直接提交变更的代码
    git commit -a
    
    #提交修改内容到分支new1,服务器地址要指定,不然它会往master和各个分支中提交一遍
    git push origin new1
    
    
    #切换到主干master
    git checkout master
    
    #将主干master-new1合并(在master下运行该指令)
    git merge master new1
    
    #将变更提交到主干master
    git push origin master
    
    
    #切换到主干master
    git checkout master
    
    
    #删除分支
    git branch -d new1
    #删除服务器分支,origin的含义是因为服务器可以有多个
    git push origin :new1
    
    #合并2个分支
    git merge issue65-user-ots origin/issue62-updateUser-ots
    
    #pull request
    #选择项目后,在网页中选择Pull Request项目,请求别人来合并自己的代码即可
    			
  • 主干冲突
    git pull origin master
    			

    报如下错误

    error: Your local changes to the following files would be overwritten by merge:
    xxx.js
    Please, commit your changes or stash them before you can merge.
    		

    解决方案:

    git stash
    git merge origin/master 或者 git pull origin master
    git stash pop
    			
  • 合并分支:

    fork 一份代码

    git clone 自己项目中的地址
    
    git push
    
    发送merge request
    
    //当原来的项目代码改动时
    //建立远程分支
    git remote add old git://github.com/fengmk2/response-patch.git
    
    git remote
    
    git pull old master
    			
  • rebase

更多学习资料

本文源链接:http://www.html5jscss.com/git-hub.html

转载请注明《前端软技能之一——Git 以及 Github》| html5jscss

评论关闭了.