zoukankan      html  css  js  c++  java
  • git

    git

    .git文件:用来跟踪管理版本库(repository)

    stage(或者叫index)的暂存区

    master主分支(自动创建)

    HEAD指针

    所以,git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支。

    廖雪峰教程: https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000  

    git从已有分支拉新分支开发

    创建分支-及概念示意图

    git branch <分支name>:带上分支名,即为创建@名称的分支。

    git checkout <分支name>:带上分支名,即为切换至@分支。

    git checkout –b <分支name>:命令加上-b参数表示创建并切换分支,相当于上述两种命令的结合。

    查看所有分支

    git branch:列出本地所有分支,同时会在当前分支前显示“*”号。

    git branch -r:列出远端所有分支。

    git branch -a:列出远端和本地所有分支。

    开发过程中经常用到从master分支copy一个开发分支dev,下面我们就用命令行完成这个操作:

    1. 切换到被copy的分支(master),并且从远端拉取最新版本

    $git checkout master

    $git pull

    2. 从当前分支拉copy开发分支

    $git checkout -b dev

    Switched to a new branch 'dev'

    3. 把新建的分支push到远端
    $git push origin dev

    4. 拉取远端分支
    $git pull

    There is no tracking information for the current branch.
    Please specify which branch you want to merge with.
    See git-pull(1) for details.

    git pull <remote> <branch>

    If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=origin/<branch> dev

    经过验证,当前的分支并没有和本地分支关联,根据提示进行下一步:
    5. 关联

    $git branch --set-upstream-to=origin/dev
    6. 再次拉取 验证

    $git pull

    主副分支合并

    git checkout master:切换回到master主分支,HEAD标识分支点切回master。

    git merge <分支name>:指定分支合并至当前分支。

    注: git branch:使用此命令查看当前所在分支。

    注:返回信息会告知本次合并的模式,此次合并为“Fast-forward”模式,既“快进模式”。

    说明:

    一般情况下的分之合并,Git会自动使用“Fast Forward”模式合并,既快速合并分支,但快速合并分支后,若删除经过快速合并的分支,会丢失分支信息,因此可以禁用“Fast Forward”方式合并,这样Git就会在“merge”合并时生成一个新的commit序列,这样即可在分支历史上看到分支信息。

    git merge --no-ff -m "merge with no-ff" dev:合并分支,将dev并入master,并禁用“Fast Forward”模式合并。

    ①.--no-ff:本次合并分支禁用“fast forward”快速合并,使用递归方式进行。

    ②.--no-ff –m:创建新的commit,加上-m,将commit描述写入log。

     工具:smartgit  分支合并

    情景:存在两个分支:一个自己的开发分支,一个总框架分支,如下图红框中所示,我自己开发在hudfang-local分支上进行,我领导开发在Feature/demo分支上,他做了修改同步到到demo分支上,我作了修改commit到hudfang-local分支上。现在我要合并他新提交到Feature/demo分支上的代码到我的分支上。

    合并方法

    (1)commit我在hudfang-local上的所有修改

    (2)在smartgit离切换到feature/demo branch,pull

    (3)切换回hudfang_local branch(右键 check out)

    (4)右键单击feature/demo branch,选择merge

    (5)在弹出的对话框里选merge to working tree

    (6)如果没有conflict,commit所有的更改即可。(选中所有更改 ,右键点击commit)

     查看分支合并情况

    git log --graph --pretty=oneline --abbrev-commit:查看分支合并记录。

    注:合并后无用的分支线即可删除。

    git branch -d <分支name >:加-d和分支名将删除指定分支,-d=Deleted。

    注:删除后使用git branch即可查看分支目录中是否已经删除指定分支。

  • 相关阅读:
    541. Reverse String II
    540. Single Element in a Sorted Array
    初识python
    openCV
    openCV
    win环境下安装配置openCV-4.3.0
    力扣Leetcode 198. 打家劫舍
    力扣Leetcode 680. 验证回文字符串 Ⅱ
    力扣Leetcode 560. 和为K的子数组
    华师2019软件专硕复试机试题最后一题G:找数
  • 原文地址:https://www.cnblogs.com/J-Cooper/p/7955136.html
Copyright © 2011-2022 走看看