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>: 基於進度建立分支。

恩恩,今天國慶,只有一個字:堵!:(

相關文章
相關標籤/搜索