建立分支並 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 config --global alias.s status
之後,git status
命令就能夠用 git s
來替換了。
設置的別名咱們能夠在~/.gitconfig
找到,一樣,上述命令也能夠直接經過編輯~/.gitconfig
的`[alias]段進行添加修改。插件
另外,也能夠經過命令行進行刪除該別名命令行
git config --global --unset alias.s
若是你用的是 Mac 自帶的 bash,能夠編輯 ~/.bashrc
或者 ~/.bash_profile
文件;code
若是你用的是 zsh,則編輯~/.zshrc
rem
增長的配置內容以下:
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'
編輯 ~/.zshrc
添加或調整以下代碼
plugins=(git)
重啓 zsh。便可擁有 git 插件的各類 git alias。
咱們的項目總會有一條主線和一條以上的分支,當咱們在分支進行功能拓展的時候,若是發現主線有一些 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}
,則取回最近的。apply
和 pop
的區別是,pop 取出後,git 棧就會釋放最近工做區,apply 只是把對應工做區應用到當前,並不釋放,若要釋放,需結合 git stash drop
刪除某一個進度.
git stash list
: 顯示Git棧內的全部備份,能夠利用這個列表來決定從那個地方恢復。
git stash clear
: 清空Git棧。此時使用gitg等圖形化工具會發現,原來stash的哪些節點都消失了。
git stash branch <branchname> <stash>
: 基於進度建立分支。
恩恩,今天國慶,只有一個字:堵!:(