github 經常使用命令

如何在 GitHub 下載某個程序的特定版本(代碼)?
1、在github WEB 界面狀況下:
步驟一:打開項目,點擊commits
步驟二:選擇裏面的branch或者tags
步驟三:點擊按鈕Download ZIP,下載源碼歷史版本。

2、下載指定分支的方式:
git clone -b v3.2.2 --depth 1 https://github.com/phalcon/cphalcon/tree/phalcon
# depth用於指定克隆深度,爲1即表示只克隆最近一次commit. 能夠提升clone速度

3、任意切換分支的方式(比起一個一個下,這樣切換比較方便,但clone速度會慢):
步驟一:git clone 下載源碼
步驟二:git branch -r 或者 git tag 列出全部版本號
步驟三:git checkout 某版本號 


當使用FTP工具上傳代碼時,如何增量上傳代碼?
1 先找到指定的版本id,好比 05104e3475f63e1e49fbfcbd424a4a3801b95645git

2 再找到最終提交的版本id,好比 a0eb9bc6d4e1801062877fd435eefb81f11598b8github

3 在命令行下進入到git代碼目錄中,鍵入命令製做增量包
git archive -o ./hot-fix-20151001.zip HEAD $(git diff 05104e3...a0eb9bc --name-only)
# 注:git diff 後邊的commit id, 能夠只取前7位或所有寫上均可以
工具

 

如何查看文件修改記錄?
git log -- filename
# 能夠看到該文件相關的commit記錄測試

git log -p filename
# 能夠顯示該文件每次提交的diff命令行

git show commit-id filename
# 查看某次提交中的某個文件變化ip

#git還原某個文件到以前的版本開發

第一步: 在命令行中輸入 git log src/main/main.c 獲得該文件的commit 歷史,複製須要回退版本的hash
第二步: git checkout <hash> <filename>
第三步: 如須要提交就執行 git commit -m "revert to previous version"同步

git blame filename
# 能夠查看到每行代碼是誰作了修改
源碼

 

rebase和merge命令如何取捨?
使用場景是不同的,雖然merge、rebase都是合併另一個分支的內容,可是rebase會把本分支的commits頂到最頂端假設咱們如今有3個分支:
一、master分支:線上環境使用的分支
二、testing分支:測試環境使用的分支
三、my_feature分支:開發新功能的分支,也就是當前分支
A狀況. 假設我在my_feature上開發了一段時間,以後另外的同事開發的功能正式上線到master分支了,那麼我能夠在當前的分支下rebase一下master分支,這樣我這個分支的幾個commits相對於master仍是處於最頂端的,也就是說rebase主要用來跟上游同步,同時把本身的修改頂到最上面
B狀況. 我在my_feature上開發了一段時間了,想要放到testing分支上,那就切到testing,而後merge my_feature進來,由於是個測試分支,commits的順序無所謂,也就不必用rebase (固然你也能夠用rebase)另外,單獨使用rebase,還有調整當前分支上commits的功能(合併,丟棄,修改commites msg)hash

相關文章
相關標籤/搜索