Git分布式版本控制系统快速参考

一.安装与配置Git
    Git是一个开源的分布式源代码版本控制系统,主要是在Linux/Unix系统上使用,现已被移植可以到Windows系统上使用.
    Windows上的Git是msysgit,图形界面环境可以使用tortoisegit,一般配合使用,先安装msysgit再安装tortoisegit.
    Git下载地址:
    http://git-scm.com/download/
    TortoiseGit下载地址:
    https://code.google.com/p/tortoisegit/
    安装msysgit和tortoisegit时基本上都是选择默认选项.
    在Windows平台安装msysgit后,Git的命令环境是Git Bash.


    配置Git的User信息.   
    $ git config --global user.email "[email protected]"
    $ git config --global user.name "gym"


    Git的使用可以参考官方文档:
    http://git-scm.com/docs


二.Git服务器搭建
    一般需要搭建一个Git服务器作为远程仓库(Remote Repository),用于开发团队存储和交换开发成果的媒介.
    实际上对于分布式方式来说,远程仓库和本地仓库管理的内容是一样的
    远程仓库可以使用Github或自己搭建Git服务器。
    如果在Windows平台搭建Git服务器,还需要CopSSH软件作为ssh服务器,使用putty或其它ssh客户端软件访问和管理服务器.


    配置Git服务器(Windows平台),需要CopSSH + Git
    先安装msysgit,再安装CopSSH.
    打开CopSSH,创建帐户,激活帐户.
    复制git的文件到copssh的bin目录下
    bin/libiconv-2.dll
    libexec/git-core/git.exe
    libexec/git-core/git-receive-pack.exe
    libexec/git-core/git-upload-archive.exe
    libexec/git-core/git-upload-pack.exe


三.Git常用操作命令
1.创建版本库(init)
    版本库又叫仓库(Repository),是存放需要管理的文件的目录,创建版本库就是创建一个目录并初始化.
    $ mkdir repo
    $ cd repo
    $ pwd
    /E/repo
    $ git init
    初始化库后,将会在版本库目录下创建一个.git的隐藏目录,是由Git管理的版本库.   
    初始化后将会产生一个主分支(Branch): master,可以查看版本库的状态
    $ git status


2.添加文件进版本库管理(add)
    $ git add .          #添加所有文件
    $ git add filename  #添加指定文件
    修改文件也是用git add


3.提交更改(commit)
    用commit命令提交更改,需要备注信息.
    $ git commit -m "description"


4.暂存更改(stash)
    将工作区中有修改还未提交的更改储藏到暂存栈中,清干净工作区
    $ git stash
    显示暂存栈中储藏的更改
    $ git stash list
    将储藏的更改从暂存栈中恢复到工作区
    $ git stash pop
    清除暂存栈中内容
    $ git stash clear
   
5.分支管理(branch,merge)
    $ git branch branch_name    #创建新分支
    $ git checkout branch_name  #签出并切换到新分支
    或者一条命令做两条命令的事: 创建新分支并切换到新分支
    $ git checkout -b branch_name
    查看当前分支
    $ git branch
    在看看当前分支的状态
    $ git status
    合并分支,将分支上的工作合并到master分支上.
    $ git checkout master
    $ git merge branch_name
    删除分支
    $ git branch -d branch_name


6.版本库共享与更新(push,fetch,pull)
    将本地版本库推送到远程版本库
    $ git push origin master
    抓取远程版本库
    $ git fetch origin deve
    抓取远程版本库并合并到本地版本库
    $ git pull origin deve


7.标签(tag)
    创建标签
    $ git tag -a 'release_1' -m 'tag code' HEAD
    推送标签到远程版本库
    $ git push origin tag release_1
    查看标签
    $ git tag -l
    删除标签
    $ git tag -d release_1


四.版本库操作示例
    1.远程版本库(Remote Repository)操作示例
    在实际应用中一般将版本库放在远程服务器上,开发团队不直接操作远程服务器,每个开发成员从远程服务器上克隆一个版本库到本地。
    开发工作将在本地版本库中完成,更改后提交到本地版本库,再推送到远程版本库中.
    当然,远程版本库(Remote Repository)可以放在远程服务器上,也可以放本地.


    (1)创建新的远程版本库
    $ mkdir remoterepo/project    #创建空目录remoterepo/project作为项目远程版本库
    $ cd remoterepo/project        #进入创建的目录
    $ git init                    #将创建的目录初始化为版本库
    $ git status                  #查看版本库状态


    (2)添加文件进版本库管理并提交
    在目录remoterepo/project下添加一些文件,再将这些文件添加进版本库管理
    $ git add .                    #添加文件进版本库管理-添加所有文件
    $ git add filename            #添加文件进版本库管理-添加指定文件
    $ git commit -m "add file"    #提交更改


    (3)创建新分支deve作为开发分支
    $ git branch deve              #创建新分支deve
    $ git checkout deve            #签出并切换到新分支   
    $ git checkout -b deve        #或者一条命令做两条命令的事: 创建新分支并切换到新分支
    $ git branch                  #查看当前分支   
    $ git status                  #再看看当前分支的状态


    $ git checkout -b master      #切换到主分支.


    2.本地版本库(Local Repository)操作示例
    (1)克隆远程版本库到本地
    $ mkdir localrepo             
    $ cd localrepo               
    $ git clone ../remoterepo/project/.git    #克隆远程版本库到本地,默认只克隆了master分支
    $ git clone -b master ../remoterepo/.git  #选择克隆版本库的某一分支
    $ git clone git://github.com/.../....git  #如果是从远程服务器克隆.
    执行之后就把版本库的内容全部都复制过来了.
    $ cd project
 
    查看远程库信息
    $ git remote              #在本地,远程仓库的默认名称是origin
    origin
    $ git remote -v
    origin  e:/localrepo/../remoterepo/project/.git (fetch)
    origin  e:/localrepo/../remoterepo/project/.git (push)


    默认只克隆了master分支,可以依远程库分支deve创建新分支deve
    $ git branch origin/deve
    $ git checkout deve


    (2)修改并提交分支deve
    $ git checkout deve    #签出分支
    $ git add .            #新增或修改代码后,添加文件进版本库管理
    $ cat .gitignore      #忽略特定文件或目录
    #.[oa]
    #~


    $ git diff            #查看staging文件差异,未添加进库管理时的差异
    $ git diff --cached    #查看staging文件差异,已添加进库管理时的差异


    $ git commit -m "add file"  #提交更改,提交到本地版本库


    (3)创建新分支
    当有某种需要时可以再创建新分支
    $ git branch test          #创建分支test
    $ git checkout test        #切换到分支test
    $ git add .                #新增或修改代码后,添加文件进版本库管理
    $ git commit -m "add file"  #提交更改


    (4)合并分支
    $ git branch              #查看当前分支
    $ git checkout deve      #切换到分支deve
    $ git merge test          #将分支上的工作合并到master分支上.


    解决分支合并冲突: 当各分支修改同一个文件内容,在合并时就可能会出现冲突,无法自动合并分支,需要解决冲突.
    $ vi test4.txt          #查看冲突的文件
    <<<<<<< HEAD
    test4
    =======
    test4test4test4
    >>>>>>> test
    Git会用<<<<<<< ======= >>>>>>>标记出不同分支的内容,修改后保存:


    $ git add .               
    $ git commit -m "add file"


    $ git branch -d test      #合并完成后可以删除分支


    (5)推送到远程版本库.
    $ git push origin deve
    在推送到远程版本库时,有可能远程版本库的内容已经被别人更改,此时需要解决冲突.
    一般需要使用fetch或pull下载最新的版本后合并分支,然后再推送到远程版本库.


    (6)抓取远程版本库(fetch,pull).
    获得更新到本地版本库(fetch)
    $ git fetch origin deve          #从远程版本deve主分支下载最新的版本到origin/deve分支上
    $ git log -p deve..origin/deve  #比较本地的deve分支和origin/deve分支的差别
    $ git merge origin/deve          #合并分支deve


    从远程版本库获取最新版本并合并到本地版本库(pull)
    $ git pull origin deve

Git 的详细介绍:请点这里
Git 的下载地址:请点这里

相关推荐