歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 5個有趣且能提高效率的超酷Unix操作命令

5個有趣且能提高效率的超酷Unix操作命令

日期:2017/2/28 14:38:32   编辑:Linux教程

在我的工作中,我總是在尋求能提高生產力,和讓開發更有趣的方法。當你在bash上飛快輸入一系列的命令,你知道你的朋友會花兩倍的時間來做這一些列操作,沒有什麼比這個讓人感覺更好的了。你是否曾經:

心裡默默地埋怨你的同事,為了到命令行的頭部,不斷地按左方向鍵。但其實你可以只需要按下CTRL + A就能達到目的 ?

看到某人一次又一次輸入相同的命令,而你可以只需要在它面前加一個! ?
當你的朋友羅列他使用的IDE的各種優點的時候,你是否會翻白眼,因為你知道你可以使用vim完成同樣的功能?

如果是這樣的話,下面這些小提示就很適合你。

聲明:這篇文章不是對vim,git和其他終端的偏見。我無意挑起終端和IDE的戰爭,只是想告訴一些對我來說很有趣的招數。

git add -p

如果你已經使用git很長一段時間了,你很可能遇到過原子提交這個概念了。本質上,這個概念指一次提交只包含相關操作,不包含邏輯上不相關的事情。例如,你對一個類的改動和相關的單元測試應該在一個提交中,而對另一個不同類的操作你應該放在另一個提交中。

但是,如果在一個文件中包含多個不相關操作的時候應該怎麼辦,或者你會想要把他們放在多個提交中,這樣你可以單獨對他們進行revert操作?或者你在一個文件中寫了很多log日志的語句,但是你不希望將這些語句提交到項目中去怎麼辦?通常人們使用的git命令是達不到這個要求的:

$ git diff
diff --git a/some-file.c b/some-file.c
index f383179..09e4e35 100644
--- a/some-file.c
+++ b/some-file.c
@@ -2,6 +2,8 @@

int main(void) {
printf("doing some stuff\n");
- printf("doing some more stuff\n");
+ do_some_stuff();
+ printf("doing some unrelated stuff\n");
+ do_some_unrelated_stuff();
return 0;
}
$ git add some-file.c
$ git commit
[master 1938906] some unrelated stuff, cramming it all in one commit 'cause I'm lazy
1 file changed, 3 insertions(+), 1 deletion(-)
$ echo "Whoops we just committed unrelated stuff. Not very modular of us."

git add的 -p (代表patch)參數對於這種場景是非常有用的。這個會告訴git add,我想要做一個特殊的add操作,並且這個命令有個非常好的交互界面能讓我們明確指定我們想要操作文件中的哪個部分。git會將所有的變動自動分塊,你可以使用y或者n來通過或者拒絕這個分塊,或者你也可以使用s將它切成更細粒度的塊。如果git不能自動將變動分成你希望的塊的話,你可以使用e(edit)選項來指定更多細節。

這個帖子中有更多關於git add -p的細節:How can I commit only part of a file in git (http://stackoverflow.com/questions/1085162/how-can-i-commit-only-part-of-a-file-in-git)

補充說明:一些評論指出,-p參數也可以和其他的一些命令,比如git check –,在一起使用。因此你可以將文件的一部分恢復回來,而保持其他的部分的變化。很方便吧!

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2013-11/92845p2.htm

推薦閱讀:

UNIX英烈傳:圖文細數十五位計算先驅 http://www.linuxidc.com/Linux/2013-08/89395.htm

自己編寫UNIX文件系統 http://www.linuxidc.com/Linux/2013-08/89319.htm

UNIX市場:還將存在衰退、競爭和利潤 http://www.linuxidc.com/Linux/2013-08/89232.htm

UNIX/Linux 系統管理技術手冊(第四版)高清英文PDF http://www.linuxidc.com/Linux/2013-07/86756.htm

UNIX/Linux 系統管理技術手冊(第四版)高清中文PDF http://www.linuxidc.com/Linux/2013-07/86757.htm

UNIX文化與歷史 http://www.linuxidc.com/Linux/2013-09/90300.htm

Copyright © Linux教程網 All Rights Reserved