Git使用指南

1、获取Git    安装并配置Git
Git是由Linus Torvalds编写的开源软件(任何人均可以避免费使用),他也编写了Linux操做系统。
它是一个用于跟踪随时间变化的程序,在编程中称为版本控制。git

步骤:安装Git
    Windows:建议下载GitHub for Windows,其中包括Git而且安装更简单: windows.github.com。将Git Shell用于您的终端。
    Mac:你也能够下载GitHub for Mac,其中包括Git,mac.github.com(来自Preferences,选择命令行工具安装),或者
        单独下载Git: git-scm.com/downloads并按照安装说明进行操做。
    Git与您计算机上的其余程序不一样。您可能没法在桌面上看到一个图标,但它始终可供您使用,您能够随时从终端或Git桌面应用程序访问它(如GitHub for Mac或Windows)。
    
步骤:配置Git
    一旦安装,打开终端(又名Bash,又名Shell,又名提示)。您能够经过键入来验证它是否真的存在:
    $ git --version
    这将返回您正在运行的Git版本,看起来像这样:
    git version 1.9.1
   (任何版本1.7.10或更高版本均可以。)
   
    接下来,配置Git,以便它知道将您的更改与谁关联:
    设置你的名字:
    $ git config --global user.name "<Your Name>"
    如今设置你的邮箱:
    $ git config --global user.email "<youremail@example.com>"
    
2、使用Git
    安装完Git以后,咱们须要把使用Git把代码从远程仓库(如Gitlab)上拉取下来,而后用Idea等工具打开,开始咱们的开发工做,下面介绍一些git的经常使用功能属性。
    1.建立新仓库:建立新文件夹,打开,而后执行 git init 以建立新的 git 仓库。
    2.检出仓库:git clone username@host:/path/to/repository  从远端服务器上检出代码
    3.工做流:你的本地仓库由 git 维护的三棵“树”组成。第一个是你的工做目录(working dir),它持有实际文件;第二个是缓存区(Index),它像个缓存区域,临时保存你的改动;最后是HEAD,指向你最近一次提交后的结果。
    4.添加与提交:
        添加:你能够计划改动(把它们添加到缓存区),使用以下命令:git add <filename>  或者 git add * 这是 git 基本工做流程的第一步
        提交:使用commit命令以实际提交改动:git commit -m "代码提交信息" 如今,你的改动已经提交到了 HEAD,可是还没到你的远端仓库。此时别人仍是看不到你的代码。
    5.推送改动:你的改动如今已经在本地仓库的 HEAD 中了。执行以下命令以将这些改动提交到远端仓库:git push origin master 固然能够把 master 换成你想要推送的任何分支。 
                (若是你尚未克隆现有仓库,并欲将你的仓库链接到某个远程服务器,你可使用以下命令添加: git remote add origin <server> 如此你就可以将你的改动推送到所添加的服务器上去了。)
    6.分支:分支是用来将特性开发绝缘开来的。在你建立仓库的时候,master 是“默认的分支”。若是在其余分支上进行开发,代码完成后再将它们合并到主分支上。
        建立分支:建立一个叫作“feature_x”的分支,并切换过去:git checkout -b feature_x
        切换分支:git checkout master        ---切换到主分支
        删除分支:git branch -d feature_x   ---把新建的分支删掉
        注意:除非你将分支推送到远端仓库,否则该分支就是不为他人所见的,推送分支到远端仓库:git push origin <branch>
    7.更新与合并:
        更新:要更新你的本地仓库至最新改动,执行:git pull  ---在你的工做目录中获取(fetch)并合并(merge)远端的改动。因此git pull 至关于(fetch + merge),更新与合并操做一块儿进行。
        合并:若是要合并其余分支到你的当前分支(例如 master),执行:git merge <branch>
    8.解决冲突:上述两种状况下,git 都会尝试去自动合并改动。不幸的是,自动合并并不是次次都能成功,并可能致使 冲突(conflicts)。 这时候就须要你修改这些文件来人工合并这些冲突(conflicts)了。
                改完以后,你须要执行以下命令以将它们标记为合并成功:git add <filename>  而后再执行git commit -m "解决冲突..."  git push 到远端仓库。
                固然在合并改动以前,也可使用以下命令查看:git diff <source_branch> <target_branch>
    9.标签:在软件发布时建立标签,是被推荐的。这是个旧有概念,在SVN中也有。能够执行以下命令以建立一个叫作 1.0.0 的标签:git tag 1.0.0 1b2e1d63ff
            1b2e1d63ff 是你想要标记的提交ID的前10位字符。使用以下命令获取提交ID:git log  固然你也能够用该提交ID的少一些的前几位,只要它是惟一的。
    10.替换本地改动:假如你作错事(天然,这是不可能的),你可使用以下命令替换掉本地改动:git checkout -- <filename>
                     此命令会使用 HEAD 中的最新内容替换掉你的工做目录中的文件。已添加到缓存区的改动,以及新文件,都不受影响。
                     假如你想要丢弃你全部的本地改动与提交,能够到服务器上获取最新的版本并将你本地主分支指向到它: ①git fetch origin  ②git reset --hard origin/master
3、协同工做:
    经过上面的介绍,相信你会对git有了一个基本的认识和了解。下面说一下实际工做中经常使用的命令以及注意事项。
        1.经常使用命令:
            git init                         //初始化本地git环境
            git clone XXX                    //克隆一份代码到本地仓库
            git pull                         //把远程库的代码更新到工做台
            git pull --rebase origin master //强制把远程库的代码跟新到当前分支上面
            git fetch                         //把远程库的代码更新到本地库
            git add .                         //把本地的修改加到stage中
            git commit -m 'comments here'     //把stage中的修改提交到本地库
            git push                         //把本地库的修改提交到远程库中
            git branch -r/-a                 //查看远程分支/所有分支
            git checkout master/branch         //切换到某个分支
            git checkout -b test             //新建test分支
            git checkout -d test             //删除test分支
            git merge master                 //假设当前在test分支上面,把master分支上的修改同步到test分支上
            git merge tool                     //调用merge工具
            git stash                         //把未完成的修改缓存到栈容器中
            git stash list                     //查看全部的缓存
            git stash pop                     //恢复本地分支到缓存状态
            git blame someFile                 //查看某个文件的每一行的修改记录()谁在何时修改的)
            git status                         //查看当前分支有哪些修改
            git log                         //查看当前分支上面的日志信息
            git diff                         //查看当前没有add的内容
            git diff --cache                 //查看已经add可是没有commit的内容
            git diff HEAD                     //上面两个内容的合并
            git reset --hard HEAD             //撤销本地修改
            echo $HOME                         //查看git config的HOME路径
            export $HOME=/c/gitconfig         //配置git config的HOME路径
            
        2.团队协做git操做流程:
            克隆一个全新的项目,完成新功能而且提交:
                git clone XXX                 //克隆代码库
                git checkout -b test         //新建分支
                modify some files             //完成修改
                git add .                     //把修改加入stage中
                git commit -m ''             //提交修改到test分支
                git push                     //推送到远程仓库
                
            审核代码:
                git checkout master         //切换到master分支
                git pull                     //更新代码
                git checkout test             //切换到test分支
                git meger master             //把master分支的代码merge到test分支
                git push origin<branch>     //把test分支的代码push到远程库
            
            目前正在test分支上面开发某个功能,可是没有完成。忽然一个紧急的bug须要处理
                git add .                            //把修改加入stage中
                git stash                            //把未完成的修改缓存到栈容器中
                git checkout bugFixBranch            //切换到bugFixBranch分支
                git pull --rebase origin master        //强制把远程库的代码跟新到当前分支上面
                fix the bug                            //修改bug代码
                git add .                            //把修改加入stage中
                git commit -m ''                    //提交修改到bugFixBranch分支
                git push                            //推送到远程仓库
                git checkout test                    //切换到test分支
                git stash pop                        //恢复本地分支到缓存状态
        3.建议:对于新手来讲,常常用的命令可能就几个,并且为了保证不出错,使用如下命令便可:
                ①git clone XXX                 //克隆代码--用于第一次拉取代码,初始化本地仓库
                ②git pull                      //拉取远程仓库代码并合并
                ③git add .                        //提交修改的内容到stage中
                ④git commit -m "修改内容"        //提交代码到本地仓库
                ⑤git push                        //将代码提交到远程仓库
                
                以上①只使用一次,之后就按照②③④⑤的顺序操做就能避免一些没必要要的麻烦。github

相关文章
相关标签/搜索