有沒有辦法在一箇中使用這三個命令?git添加,提交和推送命令在一個?
git add .
git commit -a -m "commit" (do not need commit message either)
git push
有時我只更改一個字母,CSS填充或其他東西。不過,我必須編寫所有三個命令來推送更改。有很多項目,我只有一個推動者,所以這個命令會很棒!
有沒有辦法在一箇中使用這三個命令?git添加,提交和推送命令在一個?
git add .
git commit -a -m "commit" (do not need commit message either)
git push
有時我只更改一個字母,CSS填充或其他東西。不過,我必須編寫所有三個命令來推送更改。有很多項目,我只有一個推動者,所以這個命令會很棒!
我想你可能會誤解git所設計的工作流程。 (要澄清/更正我在評論中的含義,您不需要git add .
,因爲commit -a
通常用於相同的目的 - 添加尚未上演的任何更改(如果文件已添加)
通常,你會做這樣的事情:
# make some changes
$ git commit -a -m "Changed something"
# make some more changes
$ git commit -a -m "Changed something else"
洗,漂洗,重複,直到你完成的功能X,或者你在一個停車點,或者你只是想其他人看到你」已經完成。那麼你做
$ git push
Git不是SVN - 但它似乎是你試圖使用它。您可能會發現文章here末尾的一些資源有一定用處。
雖然我對他的懷疑與韋恩沃納同意,這在技術上是一個選項:
git config alias.acp '! git commit -a -m "commit" && git push'
它定義了運行commit
和push
的別名。使用它作爲git acp
。請注意,這樣的「shell」別名總是從你的git倉庫的根目錄運行。
另一種選擇可能是編寫一個post-commit鉤子來執行推送。
@wlz我只是試了一下,它工作正常。請注意整個字符串在單引號內。 'git'自動添加轉義(用'git config -e'檢查)。 –
對不起,你是對的:)。我直接編輯.gitconfig文件。 「已經逃脫了」。 – wlz
這絕對很酷。 –
如果該文件已被跟蹤,那麼你並不需要運行git add
,你可以簡單地寫git commit -am 'your message'
如果你不想寫一個提交信息,你可能會考慮做一些像
git commit --allow-empty-message -am ''
大廈斷@加文的回答是:
製作lazygit而不是功能一個別名允許你傳遞一個參數。我已將以下內容添加到我的.bashrc(或。在.bash_profile如果蘋果機):
function lazygit() {
git add .
git commit -a -m "$1"
git push
}
這使您可以提供一個提交信息,如
lazygit "My commit msg"
,可以將這個建立過程的牛肉更被接受甚至更多的參數,比如哪些偏遠的地方的推到,或哪個分支。
不工作在我的Ubuntu服務器上,有沒有東西更多我應該做一個像重新啓動或什麼的?我將你的函數添加到我的.bashrc腳本的末尾。 –
@JoeYahchouchi不工作如何?你重置你的終端(或資源的bashrc文件)?如果你輸入'which lazygit',會發生什麼? – btse
沒關係,它的工作原理,謝謝。服務器重新啓動有竅門,我想修改我的評論,但我找不到它。 –
您可以使用bash腳本,設置別名發出命令
git commit -am "your message" && git push
如果你想讓這個答案,請添加更多關於它如何工作的評論。只是代碼轉儲的答案通常不被廣泛接受。見[回答]。 –
對不起,先生,我會更新我的答案 – vuhung3990
我認爲這應該是正確的答案。它儘可能簡潔地回答問題。只需輸入到終端,它的工作原理!如果你不想添加一個別名,另一種方法是簡單地創建一個textExpander展開並通過一個組合鍵來觸發它。 – eonist
正如this答覆中提到的任何命令或組,您可以創建一個git的別名並分配了一套它的命令。在這種情況下,這將是:
git config --global alias.add-com-push '!git add . && git commit -a -m "commit" && git push'
與
git add-com-push
這不會添加任何以前的答案。 – BanksySan
對不起,你是對的。我想我沒有注意到Tilman Vogel的答案和我的答案是一樣的。我應該刪除它嗎? – cristianzamar
使用它有一些問題與上面的腳本:
轉移 「刪除」 參數$ 1,否則「推「將會讀取它並」誤解它「。
我的尖端:
混帳配置--global alias.acpp」 git的添加-A & & branchatu = 「$(GIT 符號-REF HEAD 2>的/ dev /空)」 & & branchatu = $ {branchatu ##參/頭/} & & git的承諾-m 「$ 1」 & &移& & GIT中拉-u原點$ branchatu & & GIT中 推-u或igin $ branchatu」
我用這對我的.bash_profile
gitpush() {
git add .
git commit -m "$*"
git push
}
alias gp=gitpush
它執行像
gp A really long commit message
不要忘記保存別名後運行source ~/.bash_profile
。
我真的很喜歡這個。 ...並因此將其採用到我自己的〜/ .bash_profile;)謝謝。+1 –
最後我加入一個別名我.gitconfig
文件:
[alias]
cmp = "!f() { git add -A && git commit -m \"[email protected]\" && git push; }; f"
用法:git cmp "Long commit message goes here"
添加的所有文件,然後使用該提交信息的評論,並會將它推到原點。
我認爲這是一個更好的解決方案,因爲您可以控制提交消息的內容。
別名可以通過命令行還規定,該把它添加到您的.gitconfig
:
git config --global alias.cmp '!f() { git add -A && git commit -m "[email protected]" && git push; }; f'
我使用批處理文件:
@ECHO OFF
SET /p comment=Comment:
git add *
git commit -a -m "%comment%"
git push
上使用,如果您從命令行接受參數,probs會更容易。我只是去「lezygit MESSAGE」等它非常酷! –
當你想的Git SVN樣行爲提交,在你的git別名中使用.gitconfig
commit = "!f() { git commit \"[email protected]\" && git push; };f"
您可以嘗試gitu。
第一次(節點JS必須安裝):
npm install -g git-upload
之後:
gitu COMMIT_MSG
要一次發出這三個命令。
好事是你不必擔心當你重新安裝你的系統或當你想在不同的計算機上這樣做,並且不需要文件修改。 這也工作在不同的平臺(不只是Linux和Mac,而且在Windows下一樣cmd
和powershell
命令提示符)只是你必須安裝npm
和nodejs
(git
當然)。
我這樣做.SH腳本命令
#!/bin/sh
cd LOCALDIRECTORYNAME/
git config --global user.email "YOURMAILADDRESS"
git config --global user.name "YOURUSERNAME"
git init
git status
git add -A && git commit -m "MASSAGEFORCOMMITS"
git push origin master
由於問題沒有指定哪個殼,這裏是基於早期的答案ESHELL版本。這在eshell別名文件中,可能在〜/ .emacs.d/eshell /別名中我已經添加了第一部分z https://github.com/rupa/z/,它讓你快速cd到一個目錄,這樣無論你的目錄當前目錄是。
alias census z cens; git add .; git commit -m "fast"; git push
如果你想更好地編輯你的提交信息,我的意思是添加多個線等等......然後
git commit -a && git push
將打開編輯器,一旦你保存它也將推動信息它。
添加在~/.bash_profile
添加,並提交一個命令推放:
function g() { git commit -a -m "$*"; git push; }
用法:
g your commit message
g your commit message 'message'
雖然你不能使用分號或括號中不需要引號你的提交消息(允許單引號)。如果你想要其中的任何一個,只需在你的郵件中加雙引號,例如:
g "your commit message; (message)"
要在您的留言評論做到:
g "your commit message:
> your note"
也有以類似的方式加入並提交功能:
function c() { git add --all; git commit -m "$*"; }
作品完全相同的方式g
函數並具有相同的約束。代替c
。 例如
c your commit message
您還可以添加一個別名推到遠程:
alias p='git push'
用法:
p
這相當於到2個字母,c
並與工作時p
您使用git存儲庫。或者,您可以使用g
而不是隻用一個字母來完成。
全部別名和功能的列表: https://gist.github.com/matt360/0c5765d6f0579a5aa74641bc47ae50ac
建設關lazygit
答案,下面的解決方案增加了一個用戶檢前推,以驗證更改。如果取消,它將恢復命令。而且只有在當地回購協議發生變化時纔會發生。
### SAFER LAZY GIT
function lazygit() {
git add .
if git commit -a -m "$1"; then
read -r -p "Are you sure you want to push these changes? [y/N]} " response
case "$response" in
[yY][eE][sS]|[yY])
git push
;;
*)
git reset HEAD~1 --soft
echo "Reverted changes."
;;
esac
fi
}
您是否試過編寫shell腳本? – Paul
你不需要提交消息? [否](http://i.imgur.com/a9IAGPv.jpg)。另外,'-a'的意思是'添加',所以有一個。 –
http://stackoverflow.com/questions/7852148/function-in-bash-to-commit-and-push-in-one-command – CodeGroover