A walk through the Magit interfacegithub
三年 Git 使用心得 & 常見問題整理segmentfault
magit status
快捷鍵 | 說明 |
---|---|
M-x magit-init |
相似於 git init ,在現有目錄中初始化倉庫 |
M-x magit-clone |
相似於 git clone ,從遠端拉取倉庫 |
快捷鍵 | 說明 |
---|---|
C-x g |
magit status 相似於 git status ,但會顯示更多的內容 |
tab |
隱藏或者擴展當前的內容 |
g |
刷新當前的git 倉庫狀態 |
G |
刷新全部的 magit status buffer |
c-n |
下一行 |
c-p |
上一行 |
m-p |
上一個部分 |
m-n |
下一個部分 |
stage
快捷鍵 | 說明 |
---|---|
s |
magit-stage , 將修改添加到保留區 |
u |
magit-unstage 將修改從保留區撤銷 |
commit
命令 | 說明 |
---|---|
c |
magit-commit , 進入提交選項 |
c-c |
在進入提交頁面後, 再次執行命令 c , 建立新的commit |
c-a |
在進入提交頁面後, 再次執行命令 a , 建立新的commit , 至關於git commit --amend |
C-c C-c |
with-editor-finish , 提交commit |
C-c C-k |
with-editor-cancel , 撤銷本次提交 |
fetch/pull/push
命令 | 說明 |
---|---|
f |
magit fetch ,拉取最新的代碼 |
F |
magit pull 拉取最新的代碼,而且合併 |
P |
magit push 將本地代碼push 到遠端 |
branch
分支操做命令 | 說明 |
---|---|
b |
magit-branch ,進入分支管理 |
b-c |
至關於 命令 git checkout -b dev origin/dev ,即從遠端origin/dev fork而且建立一個本地分支dev |
b-b |
替換到新的分支,git checkout branchName |
stash
使用命令 | 說明 |
---|---|
z-z |
magit-stash-both , 建立stash |
z-a |
magit-stash-apply , 應用某個具體的stash |
z-l |
查看stash 列表 |
z-p |
magit-stash-pop , 應用某個stash ,而後在stash list 中刪除這個stash |
z-k |
magit-stash-drop , 刪除具體的stash |
(1) 三個區域app
由於git
中有3個區域 fetch
工做目錄
,即當前編輯目錄spa
暫存區域
, 能夠經過git add fileName
將文件添加到暫存區域rest
git本地倉庫
, 能夠經過git commit
將文件由暫存區域添加到本地倉庫code
(2) 從未跟蹤
,已跟蹤未暫存
變爲暫存狀態
get
名稱 | 說明 |
---|---|
命令 | magit-stage |
git命令 | git add |
快捷鍵 | s |
(3) 從已經暫存
變爲已經提交
狀態同步
名稱 | 說明 |
---|---|
命令 | magit-commit |
git命令 | git commit |
快捷鍵 | c-c |
(4) 從本地git倉庫
同步到遠端git倉庫
名稱 | 說明 |
---|---|
命令 | magit-merge |
git命令 | git merge |
快捷鍵 | m m |
命令 | magit-pull |
git命令 | git pull |
快捷鍵 | F u |
命令 | magit-push |
git命令 | git push |
快捷鍵 | P u |
(1) 工做目錄
中刪除文件
名稱 | 說明 |
---|---|
命令 | magit-discard |
git命令 | rm -rf fileName |
快捷鍵 | k |
(2) 由暫存區域
撤銷到工做目錄
名稱 | 說明 |
---|---|
命令 | magit-unstage |
git命令 | git restore |
快捷鍵 | u |
命令 | 說明 |
---|---|
b-c |
建立一個新的分支, dev2 |
P-p |
由於此時遠端沒有新的分支,只須要push 此分支, dev2 |
F-u |
配置pull 對應的遠端分支, 示例: origin/dev2 |
wrong-type-argument transient-suffix
詳見issue,
具體解決方式爲,從新編譯 transient.el
,
從新編譯的方式爲 m-x byte-compile-file 具體的文件路徑
GitError! refusing to merge unrelated histories
使用命令git pull --allow-unrelated-histories
git pull --allow-unrelated-histories CONFLICT (add/add): Merge conflict in .gitignore Auto-merging .gitignore Automatic merge failed; fix conflicts and then commit the result.