git 简略笔记之二

处理合并冲突 Git merge conflict

建立分支并 checkout 到该分支php

git checkout -b app/newapp

修改文件 a.php 的11行,保存提交git

vi a.php
git add .
git commit -m 'edit a.php 11'

切换回 master 分支,也修改 a.php 的11行shell

git checkout master
vi a.php
git add .
git commit -m 'edit a.php 11, master'

执行合并bash

git merge app/newapp

会出现以下错误提示app

Auto-merging app/Http/a.php
CONFLICT (content): Merge conflict in app/Http/a.php
Automatic merge failed; fix conflicts and then commit the result.

编辑 a.php 处理冲突,再 add 后提交。工具

设置 git alias

经过 git 自带的 alias 命令进行设置

git config --global alias.s status

之后,git status 命令就能够用 git s 来替换了。
设置的别名咱们能够在~/.gitconfig找到,一样,上述命令也能够直接经过编辑~/.gitconfig的`[alias]段进行添加修改。插件

另外,也能够经过命令行进行删除该别名命令行

git config --global --unset alias.s

经过 shell 的配置文件进行别名配置

  • 若是你用的是 Mac 自带的 bash,能够编辑 ~/.bashrc 或者 ~/.bash_profile 文件;code

  • 若是你用的是 zsh,则编辑~/.zshrcrem

  • 增长的配置内容以下:

    g=git
    ga='git add'
    gaa='git add --all'
    gb='git branch'
    gba='git branch -a'
    gbd='git branch -d'
    gcm='git checkout master'
    gcmsg='git commit -m'
    gco='git checkout'
    gd='git diff'
    gl='git pull'
    glgg='git log --graph'
    gm='git merge'
    gp='git push'
    gr='git remote'

经过 oh-my-zsh 添加 git 插件

编辑 ~/.zshrc 添加或调整以下代码

plugins=(git)

重启 zsh。便可拥有 git 插件的各类 git alias。

Git stash 改善工做流

咱们的项目总会有一条主线和一条以上的分支,当咱们在分支进行功能拓展的时候,若是发现主线有一些 bug 或者功能须要调整,而又不想把分支 commit ,但不 commit 又会没法 checkout 到 master 工做的时候,stash 就派上用场了。

git stash: 备份当前的工做区的内容,从最近的一次提交中读取相关内容,让工做区保证和上次提交的内容一致。同时,将当前的工做区内容保存到Git栈中。

git stash pop: 从Git栈中读取最近一次保存的内容,恢复工做区的相关内容。因为可能存在多个Stash的内容,因此用栈来管理,pop会从最近的一个stash中读取内容并恢复。

git stash apply stash@{1}:能够将你指定版本号为stash@{1}的工做区取出来,若是不包含stash@{1},则取回最近的。applypop 的区别是,pop 取出后,git 栈就会释放最近工做区,apply 只是把对应工做区应用到当前,并不释放,若要释放,需结合 git stash drop 删除某一个进度.

git stash list: 显示Git栈内的全部备份,能够利用这个列表来决定从那个地方恢复。

git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。

git stash branch <branchname> <stash>: 基于进度建立分支。

恩恩,今天国庆,只有一个字:堵!:(

相关文章
相关标签/搜索