像大多數新手一樣,我一開始是在網上搜尋 git 命令,然後把答案複製貼上,並沒有真正理解它們究竟做了什麼。
後來我曾經想過:「如果有乙個最常見的 git 命令的列表,以及它們的功能是什麼,這不是極好的嗎?」
要想在倉庫中初始化git,你只需輸入以下命令即可。如果你沒有初始化git,則不能在該倉庫內執行任何其他的git命令。
1.git init
如果你初始化了自己的 git 倉庫,並希望將其與 github 倉庫相關聯,則必須在 github 上建立乙個,複製新倉庫提供的 url,並使用 git remote add origin 命令,這裡使用 github 提供的 url 替換 。這樣,你就可以新增、提交和推送更改到你的遠端倉庫了。
最後一條命令用在當你需要更改遠端倉庫時。如果你從其他人那裡複製了乙個倉庫,並希望將遠端倉庫從原始所有者更改為你自己的 github 帳戶。除了改用 set-url 來更改遠端倉庫外,流程與 git remote add origin 相同。
1. git remote -v
2. git remote add origin 3. git remote set-url origin
複製倉庫最常見的方式是使用 git clone,後跟倉庫的 url。
請記住,遠端倉庫將連線到轉殖倉庫原屬於的帳戶。所以,如果你轉殖了乙個屬於別人的倉庫,你將無法推送到 github,除非你使用上面的命令改變了 origin。
1. git clone 2.
命令 git branch 列出了本地機器上的所有分支。如果要建立乙個新的分支,可以使用命令 git branch ,其中 表示分支的名字,比如說 master。
git checkout 命令可以切換到現有的分支。你也可以使用 git checkout -b 命令建立乙個新的分支並立即切換到它。大多數人都使用此命令而不是單獨的 branch 和 checkout 命令
1. git branch
2. git branch 3. git checkout 4. git checkout -b
如果你對乙個分支進行了一系列的更改,假如說此分支名為 develop,如果想要將該分支合併回主分支(master)上,則使用 git merge
命令。你需要先檢出(checkout)主分支,然後執行 git merge develop 將 develop 合併到主分支中。
1. git merge
如果你正在與多個人進行協作,你會發現有時 github 的倉庫上已經更新了,但你的本地卻沒有做相應的更改。如果是這樣,你可以使用 git pull origin
命令從遠端分支中拉取最新的更改。
1. git pull origin
如果您好奇地想看到哪些檔案已被更改以及哪些記憶體正在被跟蹤,可以使用 git status 命令。如果要檢視每個檔案的更改,可以使用 git diff 來檢視每個檔案中更改的行。
1.git status
2.git diff --stat
很快你會到達乙個階段,這時你希望你的提交看起來整潔一致。你可能還需要調整你的提交記錄,使得提交更容易理解或者能還原乙個意外的有破壞性的更改。
git log 命令可以輸出提交的歷史記錄。你將使用它來檢視提交的歷史記錄。
你的提交會附帶訊息和乙個雜湊值,雜湊值是一串包含數字和字母的隨機序列。乙個雜湊值示例如下:c3d882aa1aa4e3d5f18b3890132670fbeac912f7。
1. git log
假設你推送了一些可能破壞了你應用程式的東西。你最好回退乙個提交然後再提交一次正確的,而不是修復它和推送新的東西。
如果你希望及時回退並從之前的提交中檢出(checkout)你的應用程式,則可以使用該雜湊作為分支名直接執行此操作。這將使你的應用程式與當前版本分離(因為你正在編輯歷史記錄的版本,而不是當前版本)。
1. git checkout c3d882aa1aa4e3d5f18b3890132670fbeac912f7
然後,如果你在那個歷史分支中做了更改,並且想要再次推送,你必須使用強制推送。
注意:強制推送是危險的,只有在絕對必要的時候才能執行它。它將覆蓋你的應用程式的歷史記錄,你將失去之後版本的任何資訊。
1.git push -f origin master
在其他時候,將所有內容保留在乙個提交中是不現實的。也行你想在嘗試有潛在風險的操作之前儲存當前進度,或者也許你犯了乙個錯誤,但希望在你的版本歷史中避免尷尬地留著這個錯誤。對此,我們有 git rebase。
假設你在本地歷史記錄上有 4 個提交(沒有推送到 github),你要回退這是個提交。你的提交記錄看起來很亂很拖拉。這時你可以使用 rebase 將所有這些提交合併到乙個簡單的提交中。
1. git rebase -i head~4
1. pick 120deo9 oldest commit message
2. pick 4209fei second oldest commit message
3. pick 4390gne third oldest commit message
4. pick bmo0dne neweest commit message
為了合併這些提交,我們需要將 pick 選項修改為 fixup(如**下面的文件所示),以將該提交合併並丟棄該提交訊息。請注意,在 vim 中,你需要按下 a 或 i 才能編輯文字,要儲存退出,你需要按下 esc 鍵,然後按 shift + z + z。不要問我為什麼,它就是這樣。
1. pick 120deo9 oldest commit message
2. fixup 4209fei second oldest commit message
3. fixup 4390gne third oldest commit message
4. fixup bmo0dne neweest commit message
這將把你的所有提交合併到乙個提交中,提交訊息為 oldest commit message。
下一步是重新命名你的提交訊息。這完全是乙個建議的操作,但只要你一直遵循一致的模式,都可以做得很好
為了更改提交訊息,請使用 amend 標誌。
1. git commit --amend
1.feat:add stripe checkout button to payments page
2. 3.- add stripe checkout button
4.- write tests for checkout
保持指南中列出的型別type的乙個優點是它使編寫更改日誌更加容易。你還可以在頁尾footer(再次,在指南中規定的)中包含資訊來引用問題issue。
注意:如果你正在協作乙個專案,並將**推送到了 github,你應該避免重新引用(rebase)並壓縮(squash)你的提交。如果你開始在人們的眼皮子底下更改版本歷史,那麼你可能會遇到難以追蹤的錯誤,從而給每個人都帶來麻煩。
SEO的一天工作安排表
現在做seo的朋友都感覺會比較無聊,甚至有時還會對seo產生反感,最終導致放棄seo工作,不再從事這一行業。其實說實話seo並沒有那麼無聊,做seo的時候只要找對方法,每天看著排名網上爬,那麼你的興趣也就提起來了。看到這裡很多站www.cppcns.com長朋友可能會問,說說容易,那如何把 排名弄上...
第一天實習 第一天工作感想備忘
對於我自己的問題,也是存在的,畢竟工程師 研究員 產品經理其實可以說大方向上還是有不一樣的,幹產品不懂技術 看不透前景,就沒法兒設計乙個好產品,但是工程師對於我來說需要乙個更好的切入點,從零開始,掌握好這門學問的基礎,畢竟電腦科學的很多相關知識還沒有掌握。研究員 也是乙個必然要經歷和歷練的東西,因為...
linux shell工作中我所用到的命令(雜項)
整理這兩年寫的shell指令碼,歸納一些常用的命令或工具,其中有些項展開不是一篇兩篇能說清楚的,在此粗粒度一筆帶過不做深入介紹,只是從之前寫的指令碼中和平時工作中總結常用命令 像什麼cd 啊 ls 啊太基礎的直接忽視 split b 100k filename split l 100 filenam...