zoukankan      html  css  js  c++  java
  • Git使用操作指南和GitHub


    本文记录Git的使用操作,把散落的记忆整理到一起。并介绍GitHub的使用。

    使用Git代表着一种思想和境地,和SVN相比,不是技术上的差异有多么大,而是代表融入了一种新的生态环境。一种开放开源的心态,一种技术上不断学习和领悟的精神。一种严格要求自己深入理解、不断寻求的态度。


    Git使用操作指南




    推荐网站:

    http://rogerdudler.github.io/git-guide/index.zh.html

    http://www.git-scm.com/book/zh


    Git图形工具


    SourceTree,如其名,源码树,能够方便的进行代码浏览、提交、合并,相比較使用Git命令。能够提高工作效率。

    可是SourceTree的解决冲突的功能是比較弱的。能够使用Eclipse/Idean的合并工具,只是依旧不怎么好用。

    推荐的比較合并工具是Beyond Campare。官网地址:http://www.scootersoftware.com/download.php ,顾名思义。超越了比較。非常强大的比較。

    和Git结合。能够把冲突的文件。和远程代码库的最新文件比較。方便解决冲突。


    Mac下怎样把Beyond Campare和Git集成,过程例如以下:

    1、安装Beyond Campare 2,并运行其菜单的命令"Install Command Line Tools...",这里,我们就能够在命令行输入bcomp调用它了。

    2、定义Git的比較合并工具,vim ~/.gitconfig。输入内容:

    [diff]
            tool = bcomp
    [difftool "bcomp"]
            cmd = "/usr/local/bin/bcomp" "$LOCAL" "$REMOTE"
    [difftool]
            prompt = false
    [merge]
            tool = bcomp
    [mergetool]
            prompt = false
    [mergetool "bcomp"]
            cmd = "/usr/local/bin/bcomp" "$LOCAL" "$REMOTE" "$BASE" "$MERGED"

    3、git difftool 文件,就能够调出GUI。非常方便的比較合并文件了。

    右边是有冲突的本地文件(我们要保存的),左边是用来比較的最新远程分支。

    假设仅仅输入git difftool,会把全部的冲突的文件一个一个调出来处理。

    4、git mergetool工具,分为5个区域。local/remote/base(共同的祖先),能够选的合并代码。目标代码。


    PS:

    假设有时git difftool不能调出diff界面。能够试着把冲突文件增加stage,然后在从stage中拿出来就能够了。

    git add .  git reset HEAD .

    git add 文件名称  git reset HEAD 文件名称

    删除远程分支:git push origin :20151110-techoptimize

    删除本地分支:git branch -d 20151110-techoptimize


    參考网址:

    Using Beyond Compare with Version Control Systems

    git-difftool - Show changes using common diff tools

    使用Beyond Compare作为git mergetool的默认对照工具 For Mac

    git config命令使用

    Git查看、删除、重命名远程分支和tag


    Git描写叙述


    Git安装:http://git-scm.com/book/en/Getting-Started-Installing-Git

    Git配置与使用:http://railstutorial-china.org/chapter1.html#section-1-3-1

    10分钟Git使用教程:http://rogerdudler.github.io/git-guide/index.zh.html   http://www.open-open.com/lib/view/open1332904495999.html

    和SVN会对每一个目录都增加.svn文件不同,Git仅仅会在根目录下创建一个.git目录,全部和Git管理相关的内容都在这里,假设你想把项目从Git管理中删除,移除这个目录就能够了。

    使用Git,最好在每一个Git项目都建立一个.gitignore文件,能够到生成:https://www.gitignore.io/ ,其作用和SVN的ignore是一样的,比方,对于java项目,我们能够用例如以下的.gitignore文件:

    *.class
    
    # Mobile Tools for Java (J2ME)
    .mtj.tmp/
    
    # Package Files #
    *.jar
    *.war
    *.ear
    
    # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
    hs_err_pid*
    
    # Ignore all logfiles and tempfiles.
    .project
    /*/.project
    
    .classpath
    /*/.classpath
    
    .settings
    /*/.settings
    /*/.settings/*
    
    target
    /*/target
    /*/target/*
    
    .DS_Store
    
    .svn
    .svn/*
    
    .idea
    .idea/*
    
    Thumbs.db
    
    *.log


    Git与GitHub


    Gitclient:http://msysgit.github.io/ ,使用这个client的SSH验证方式例如以下:

    • ssh-keygen -t rsa -C 注冊邮箱
    • C:Userspuma.sshid_rsa.pub(假设是Mac系统,则文件夹是:/Users/puma/.ssh),把内容全然复制到gitserver
    • git clone git@10.20.30.14:mall/mall.git

    推送到GitHub:http://railstutorial-china.org/chapter1.html#section-1-3-4

    注意:你必须先注冊一个GitHub.Com账户,假设使用SSH方式进行推送,则须要创建SSH秘钥。须要在GitHub中建立Repository。

    比方,我们在GitHub有个账户:pumadong 。以下建立了一个项目: cl-privilege,则能够:

    Create a new repository on the command line

    touch README.md

    git init

    git add README.md

    git commit -m "first commit"

    git remote add origin git@github.com:pumadong/cl-privilege.git

    git push -u origin master

    假设在github建立项目时。建立了README.md文件,则上一步会提示版本号问题,不能push,须要用以下这两行:

    (

    git pull origin master

    git commit -m "first commit"

    )

    也能够:

    Push an existing repository from the command line

    git remote add origin git@github.com:pumadong/cl-privilege.git

    git push -u origin master

    如今我们能够在GitHub中看到这个master分支了:

    https://github.com/pumadong/cl-privilege

    关于Git。在Windows及Mac以下。都有GUI程序可用,在linux以下,貌似仅仅有git命令可用了。

    假设这个项目在Eclipse打开时,没有识别Git,能够删除项目,从GitHub上克隆一次:git clone git@github.com:pumadong/cl-privilege.git


    Git和GitLab


    GitHub对于私用来说,是非常贵的。对于公司内部使用。通常是使用GitLab。

    http://www.gitlab.com/

    http://www.uloli.com/p/6sh26/


    FAQ


    在Eclipse中Pull时,报错:The current branch is not configured for pull No value for key branch.mall_2.8.5.merge found in config

    解决的方法:

    找到.git/config文件。添加mall_2.8.5节点就可以。

    chmod 777 *,会导致Git觉得文件被改动。


  • 相关阅读:
    JavaScript 按位与和逻辑与
    JavaScript跨域问题
    前端-知识+能力感触
    堆&堆排序
    Java中的数据类型和引用
    基础算法之选择排序
    基于TCP协议的网络通讯流程
    Java基础之封装
    个人主页
    算法基础之希尔排序
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5088468.html
Copyright © 2011-2022 走看看