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

相关文章
相关标签/搜索