zoukankan      html  css  js  c++  java
  • git使用

    git基本命令

    git commit:提交

    git branch (newImage):创建分支

    git merge (bugFix):我们要把 bugFix 合并到 master 里

    git rebase (side):把选中的 master分支里的工作直接移到 side分支上。移动以后会使得两个分支的功能看起来像是按顺序开发,但实际上它们是并行开发的。

    注意,提交记录 C3 依然存在(树上那个半透明的节点),而 C3' 是我们 Rebase 到 master 分支上的 C3 的副本。

    git rebase (side) (another):把another分支放到side下面

    git tag (v1) (c1):给c1标签命名为v1

    在这种情况下:

    git describe master会输出:v1_2_gC2

    git describe side会输出:v2_1_gC4

    git高级命令

    HEAD 是一个对当前检出记录的符号引用 —— 也就是指向你正在其基础上进行工作的提交记录。HEAD 总是指向当前分支上最近一次提交记录。大多数修改提交树的 Git 命令都是从改变 HEAD 的指向开始的。HEAD 通常情况下是指向分支名的(如 bugFix)。在你提交时,改变了 bugFix 的状态,这一变化通过 HEAD 变得可见。

    **^:相对引用,向父1级

    ~3:相对引用,向父3级

    git cherry-pick (c2 c4):类似于rebase**

    交互式rebase:

    指的是使用带参数 --interactive 的 rebase 命令, 简写为 -igit rebase -i (overHere) --solution-ordering c3,c4,c5

    多个父节点:

    git checkout HEAD~
    git checkout HEAD^2
    git checkout HEAD~2
    
    

    也可以写出一句:git checkout HEAD~^2~2

    提交技巧

    1

    接下来这种情况也是很常见的:你之前在 newImage 分支上进行了一次提交,然后又基于它创建了 caption 分支,然后又提交了一次。此时你想对的某个以前的提交记录进行一些小小的调整。比如设计师想修改一下 newImage 中图片的分辨率,尽管那个提交记录并不是最新的了。

    我们可以通过下面的方法来克服困难:

    先用git rebase -i将提交重新排序,然后把我们想要修改的提交记录挪到最前

    然后用commit --amend来进行一些小修改

    接着再用git rebase -i来将他们调回原来的顺序

    最后我们把master移到修改的最前端(用你自己喜欢的方法),就大功告成啦!

    当然完成这个任务的方法不止上面提到的一种(我知道你在看 cherry-pick 啦),之后我们会多点关注这些技巧啦,但现在暂时只专注上面这种方法。

    最后有必要说明一下目标状态中的那几个'—— 我们把这个提交移动了两次,每移动一次会产生一个';而 C2 上多出来的那个是我们在使用了amend参数提交时产生的,所以最终结果就是这样了。

    也就是说,我在对比结果的时候只会对比提交树的结构,对于'的数量上的不同,并不纳入对比范围内。只要你的master分支结构与目标结构相同,我就算你通过。

    远程仓库

    git clone:克隆到远程仓库

    git fetch:下载远程仓库

    • 从远程仓库下载本地仓库中缺失的提交记录

    • 更新远程分支指针(如 o/master)

    git fetch实际上将本地仓库中的远程分支更新成了远程仓库相应分支最新的状态。远程分支反映了远程仓库在你最后一次与它通信时的状态,git fetch 就是你与远程仓库通信的方式了!希望我说的够明白了,你已经了解 git fetch 与远程分支之间的关系了吧。

    git fetch通常通过互联网(使用 http:// 或 git:// 协议) 与远程仓库通信。

    git fetch常常与git merge联用,将远端仓库文件下载后在合并到本地仓库

    git pull:就是git fetch常常与git merge合成的一句话,效果相同

    git fakeTeamwork (too) (3):通过一个命令,我们就模拟队友推送了 3 个提交记录到远程仓库的 foo 分支。

    git push:与pull相反,从本地到远端git push --rebase:以rebase方式推到远端

  • 相关阅读:
    潭州课堂25班:Ph201805201 django 项目 第二课 git 版本控制 (课堂笔记)
    HTML中的转义字符
    Java防止SQL注入
    Web很脆弱,SQL注入要了解
    防止sql注入:替换危险字符
    Hadoop HA详解
    java代码---charAt()和toCharry()的用法
    java代码-----计算器,界面+功能+boolean
    java代码-----运用endWith()和start()方法
    java代码---indexOf()方法
  • 原文地址:https://www.cnblogs.com/zhengyu-ahu/p/12252766.html
Copyright © 2011-2022 走看看