Git多人协作指南

作者: JervieQin | 来源:发表于2018-04-14 12:51 被阅读131次

    本教程的目的是为了快速了解Git/Github的使用方法,并且能够指导读者快速上手多人项目。至于Git的安装不再本教程内,请读者自行搜索。


    创建本地代码仓库并同步到远端Github

    【1】. 创建本地仓库:

    1. 首先你得找到你的项目文件夹。然后调出Git Bash界面。
    2. 然后输入 【git init】来将项目文件夹创建成本地仓库。等待命令行执行完。
    3. 接着输入【git add README.md】,向本地仓库添加readme。等待命令行执行完。
    4. 接着输入 【git add .】 ,像本地仓库添加修改文件。等待命令行执行完。
      再接着输入【git commit -m "XX这里填修改提示XX"】,向本地仓库提交修改。等待命令行执行完。


      右击鼠标点击Git Bash Here
      GitBash

    【2】.创建远端Github仓库
    登陆github注册账号后创建GitHub仓库。然后把项目名打上,【注意,先不要点击创建README】

    创建github仓库
    填写
    【3】.将本地仓库与远端相连接
    打开 Git Bash , 继续输入【 git remote add origin XXXX 】XXX替换为: 你创建好的github地址
    【4】.将本地仓库同步到远端
    打开 Git Bash输入 【git push -u origin master】 。等待命令行执行完成。

    到此位置,你已经能够将自己本地的项目文件上传到Github了。现在,反过来,怎么从github上获取项目到本地。


    获取 Git 仓库

    如果你想获得一份已经存在了的 Git 仓库的拷贝,比如说,你想为某个开源项目贡献自己的一份力,这时就要用到 git clone 命令。
    在你希望存放的更目录打开 Git Bash ,输入命令【git clone XXX】XXX替换为想要拷贝的远端仓库的网址。
    命令执行完了之后,你就能看见一个一摸一样的项目文件夹。

    到这里,仓库的双端同步已经完成。项目小组已经有相同项目文件的拷
    贝。


    接下来,要讲小组工作中的重点:提交更新、合并、拉取等等操作


    更新

    在将这部分时,首先要了解的是:工作目录下的每一个文件都不外乎已跟踪或未跟踪这两种状态。
    已跟踪的文件是已经被纳入过版本控制的文件,工作一段时间后,它可以是修改/未修改的。未跟踪的就是工作中新增的文件还没纳入版本控制的文件。初次克隆某个仓库的时候,工作目录中的所有文件都属于已跟踪文件,并处于未修改状态。

    现在你修改了文件,执行【git add .】将修改纳入暂存,【 git status】可以让你让看项目状态,在Changes to be committed:下能看到暂存的文件名。

    简化输出status

    无需纳入git管理的东西,我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式。 执行【git .gitignore】,生成文件,打开文件输入要忽略的文件或目录结构,一个一行。

    提交更新
    完成将所有修改过或者新增的文件用 【git add .】添加到暂存区。然后使用【git commit -u 'XXX'】。【git commit -a -m 'xxx'】可以直接跳过添加暂存区的过程将跟踪的文件直接提交。
    移除文件
    【git rm xxxx】在暂存区中删除。
    移动文件
    【git mv file_from file_to】
    查看提交历史
    【git log -p -2】显示最近2次提交的内容差异, -p/-2 是可选参数

    log
    最新历史显示在最上面。

    撤消操作
    有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。 此时,可以运行带有 --amend 选项的提交命令尝试重新提交:
    【git commit --amend】这个将会将你重新修改的文件提交到暂存区。

    合并提交

    撤消对文件的修改
    两种情况:
    一种是filename自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
    一种是filename已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
    总之,就是让这个文件回到最近一次git commit或git add时的状态。
    场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令【git checkout -- file】。
    git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
    场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令【git reset HEAD file】,就回到了场景1,第二步按场景1操作。
    场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,版本回退,不过前提是没有推送到远程库。
    注意:这条命令是覆盖性的,他会由原来的文件覆盖你修改过的文件。

    拉取

    添加远程仓库
    【git remote add <shortname> <url>】
    现在你可以在命令行中使用对应的缩写来代替整个 URL。
    例如,如果你想拉取 Paul 的仓库中有但你没有的信息,可以运行 git fetch pb:
    现在 Paul 的 master 分支可以在本地通过 pb/master 访问到 - 你可以将它合并到自己的某个分支中,或者如果你想要查看它的话,可以检出一个指向该点的本地分支。
    从远程仓库中抓取与拉取
    【git fetch <remote-name>】
    这个命令会访问远程仓库,从中拉取所有你还没有的数据。 执行完成后,你将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看。
    必须注意 git fetch 命令会将数据拉取到你的本地仓库 - 它并不会自动合并或修改你当前的工作。 当准备好时你必须手动将其合并入你的工作。

    分支

    使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。
    创建分支
    【git branch <name>】
    切换分支
    【git checkout <branch-name>】
    在分支中提交的修改在其他分支中是看不见的,需要合并分支,才行。
    注:在你切换分支之前,保持好一个干净的状态。

    合并分支
    【git merge <branch name>】

    合并分支界面
    删除分支
    在分支利用完之后,应该及时删除。【git branch -d <branch name>】

    遇到冲突时的分支合并
    有时候合并操作不会如此顺利。 如果你在两个不同的分支中,对同一个文件的同一个部分进行了不同的修改,Git 就没法干净的合并它们。

    冲突
    这个时候,你需要【git status】来查看因冲突而未合并提交的文件。并且打开这些包含冲突的文件然后手动解决冲突。
    这里推荐一个Diff/Merge工具,可以更方便的查看Diff/Merge信息。
    SourceGear MergeDiff

    到此,多人协作流程常识讲解完毕。查看更多请翻阅官方文档

    相关文章

      网友评论

      本文标题:Git多人协作指南

      本文链接:https://www.haomeiwen.com/subject/zalehftx.html