新手怎麼學git和github(GitHub秘籍:git)
2023-04-12 13:29:16
本秘籍收錄了一些Git和Github非常酷同時又少有人知的功能。靈感來自於Zach Holman在2012年Aloha Ruby Conference和2013年WDCNZ上所做的演講:Git and GitHub Secrets(slides)和More Git and GitHub Secrets(slides)。
前一個分支
快速檢出上一個分支:
$ git checkout -# Switched to branch 'master'$ git checkout -# Switched to branch 'next'$ git checkout -# Switched to branch 'master'
進一步了解 Git 分支.
Stripspace命令
Git Stripspace命令可以:
去掉行尾空白符多個空行壓縮成一行必要時在文件末尾增加一個空行使用此命令時必須傳入一個文件,像這樣:
$ git stripspace < README.md
進一步了解 Git stripspace 命令.
檢出Pull Requests
Pull Request是一種GitHub上可以通過以下多種方式在本地被檢索的特別分支:
檢索某個分支並臨時儲存在本地的FETCH_HEAD中以便快速查看更改(diff)以及合併(merge):
$ git fetch origin refs/pull/[PR-Number]/head
通過refspec獲取所有的Pull Request為本地分支:
$ git fetch origin ' refs/pull/*/head:refs/remotes/origin/pr/*'
或在倉庫的.git/config中加入下列設置來自動獲取遠程倉庫中的Pull Request
[remote "origin"] fetch = refs/heads/*:refs/remotes/origin/* url = [email protected]:tiimgreen/github-cheat-sheet.git
[remote "origin"] fetch = refs/heads/*:refs/remotes/origin/* url = [email protected]:tiimgreen/github-cheat-sheet.git fetch = refs/pull/*/head:refs/remotes/origin/pr/*
對基於派生庫的Pull Request,可以通過先checkout代表此Pull Request的遠端分支再由此分支建立一個本地分支:
$ git checkout pr/42 pr-42
進一步了解如何檢出pull request到本地.
提交空改動 :trollface:
可以使用--allow-empty選項強制創建一個沒有任何改動的提交:
$ git commit -m "Big-ass commit" --allow-empty
這樣做在如下幾種情況下是有意義的:
標記一批工作或一個新功能的開始。記錄你對項目進行了跟代碼無關的改動。跟使用你倉庫的其他人交流。作為倉庫的第一次提交,因為第一次提交日後是不能被rebase的: git commit -m "init repo" --allow-empty.更直觀的Git Status
在命令行輸入如下命令:
$ git status
可以看到:
加上-sb選項:
$ git status -sb
這回得到:
進一步了解 Git status 命令.
更直觀的Git Log
輸入如下命令:
$ git log --all --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)%Creset' --abbrev-commit --date=relative
可以看到:
這要歸功於Palesz在stackoverflow的回答。
這個命令可以被用作別名,詳細做法見這裡。
進一步了解 Git log 命令.
Git查詢
Git查詢運行你在之前的所有提交信息裡進行搜索,找到其中和搜索條件相匹配的最近的一條。
$ git show :/query
這裡 query (區別大小寫)是你想要搜索的詞語, 這條命令會找到包含這個詞語的最後那個提交並顯示變動詳情。
$ git show :/typo
合併分支
輸入命令:
$ git branch --merged
這會顯示所有已經合併到你當前分支的分支列表。
相反地:
$ git branch --no-merged
會顯示所有還沒有合併到你當前分支的分支列表。
進一步了解 Git branch 命令.
轉載本文請遵循原文要求
,