zoukankan      html  css  js  c++  java
  • git 学习笔记

    分布式版本控制系统

    客户端并不只是提取最新版本的文件快照,而是把代码仓库完整地镜像下来。

    git的一些常用指令

    • git diff // 比较工作目录中当前文件和暂存区域快照的差异,即修改后还没有暂存起来的变化内容
    • git diff --staged // 暂存起来的文件和上次提交时快照之间的差异
    • git status
    • git commit // 提交到暂存区
    • git commit --amend // 修改最后一次的提交
    • git commit -a // =git add + git commit
    • git rm // 移除文件
    • git log // 查看提交历史
    • git remote // 查看当前的远程库
    • git fetch // 从远程仓库中拉取本地仓库没有的数据,并不自动合并到当前工作分支
    • git pull // 将远端分支自动合并到本地仓库中当前的分支

    git分支

    在git中提交,会保存一个提交(commit)对象,该对象包含一个指向缓存内容快照的指针,包含本次提交的作者等相关的附属信息,包含零个或多个指向该提交对象的父对象指针:首次提交是没有直接祖先的,普通提交有一个祖先,由两个或多个分支合并产生的提交则由多个祖先。

    git中的分支,其实本质上仅仅是个指向commit对象的可变指针。git会使用master作为分支的默认名字。在若干次提交后,你其实已经有了一个指向最后一次提交对象的master分支,它在每次提交时都会自动向前移动。

    创建一个新的分支: git branch [branchName]

    创建了一个新的分支后不会自动切换到这个分支中,需要执行: git checkout [branchName]

    也可以将创建新分支和切换到新分支合并成一条指令完成: git checkout -b [branchName]

    分支的新建与合并

    现在要将hotfix的内容合并到master上来,需要执行:

    git checkout master

    git merge hotfix

    合并时会出现Fast forward的提示,由于当前master分支所在的提交对象是要并入的hotfix分支的直接上游,git只需把master分支指针直接右移。这种单线的历史分支不存在任何需要解决的分歧,所以这种合并过程可以称为快进。

    合并后,可以将hotfix分支删除: git branch -d hotfix

    如果现在要将iss53合并到master分支上:

    需要执行:
    git checkout master

    git merge iss53

    由于当前master分支所指向的提交对象(C4)并不是iss53分支的直接祖先,git会用两个分支的末端(C4和C5)以及他们的共同祖先(C2)进行一次简单的三方合并计算。

    遇到冲突时的分支合并

    如果在不同的分支中都修改了同一个文件的同一个部分,git就会无法干净地把两者合在一起。git作了合并,但没有提交,它会停下来等你解决冲突。要看哪些文件在合并的时候发生冲突,可以用git status来查阅。

    任何包含未解决冲突的文件都会以未合并(unmerged)的状态列出。

    可以将里面的内容进行人工修改。在解决所有文件里所有冲突后,运行git add将把它们标记为已解决状态。然后可以用git commit来完成合并提交。

    分支的管理

    git branch // 给出当前所有分支的清单,分支名字前的*表示当前所在的分支。

    若要查看各个分支最后一个提交对象的信息,运行git branch -v。

    要从该清单中筛选出你已经(或尚未)与当前分支合并的分支,可以用--merge和--no-merged选项。

  • 相关阅读:
    黑白棋_lduoj_dfs深搜
    lduoj_2021年初寒假训练第41场
    Git学习day02
    Git学习day01
    python学习之urllib的使用
    SQL语句之授权与收回
    PHP学习之有问题找谁
    PHP学习之没有权限修改hosts文件
    PHP学习之创建本地站点
    python学习之常见错误
  • 原文地址:https://www.cnblogs.com/simpul/p/11415591.html
Copyright © 2011-2022 走看看