GitHub实战系列汇总:http://www.cnblogs.com/dunitian/p/5038719.html
Linux安装git,做个记录吧(使用github提供的隐私邮箱)
# git官方手册 https://git-scm.com/book/zh/v2
# 1.安装Git
sudo apt-get install git
# 2.设置用户名和邮箱(使用Github提供的隐私邮箱)
git config --global user.name "Your Name"
git config --global user.email xxx+名称@users.noreply.github.comgit config --list #查看所有配置
# 3.克隆现有git仓库 (支持多种链接协议)
git clone https://github.com/lotapp/BaseCode.git
# 4.检查当前文件状态
git status #随时可以查状态
# 5.这时候你增加文件都是未跟踪的(如果之前并不存在这个文件,那么就没法跟踪了)
cp -r python/ BaseCode/
# 6.添加跟踪文件
git add xxx# 7.检查当前文件状态
git status #现在已被跟踪,并处于暂存状态
# 8.提交更新
git commit -m "备注信息"
# 9.1修改文件
# 要查看尚未暂存的文件更新了哪些部分(跟历史版本的对比)
git diff 修改的文件# 后一般都是先把修改后的文件,git add 一下(添加修改都是这个命令)
#git其实提供了一个便捷的方法 git commit -a -m "xxx"
git commit -a -m "test skip git add"
# 9.2删除文件 一样可以用 git commit -a -m "xxx" 来快速提交
git commit -a -m "test skip git add"
# 10.推送到远程端
git push #默认是git pull origin master,其他需要指定(修改了origin也可以用git push来默认推送到clone的那个远程仓库)
关于查看历史提交的扩展:(冲突的时候经常用)
# 查看历史提交
git log
# 常用的选项是 -p,用来显示每次提交的内容差异
git log -p -2 #查看最近两次提交
# 每次提交的简略的统计信息(应用场景:快速浏览小伙伴commit所带来的变化的时候)
git log --stat
git log --stat -p -2 #可以联合使用
--stat 选项在每次提交的下面列出所有被修改过的文件、有多少文件被修改了以及被修改过的文件的哪些行被移除或是添加了。 在每次提交的最后还有一个总结
--------------------------------------------------------------------
扩展(冲突查明细): git log --pretty=format eg:(--graph是美化输出)
git log --pretty=oneline --graph #一行显示,数据量大的时候用比较方便
git log --pretty=format:"%h - %an, %ar : %s" #时间显示
如果出现冲突,可以先运行 git fetch 拉取一下远端仓库进行同步
快速版
get pull # 同步代码
get add --all # 添加新文件
get commit -a -m "注释" # 提交本次修改
get push # 推送到仓库
git checkout xxx # 撤销文件修改
--------------------------------------------------
# .安装Git
sudo apt-get install git -----------------------
# .设置用户名和邮箱
git config --global user.name "Your Name"
git config --global user.email xxx+名称@users.noreply.github.com git config --list #查看所有配置 -----------------------
# .克隆现有git仓库
git clone https://github.com/lotapp/BaseCode.git -----------------------
# .检查当前文件状态
git status #随时可以查状态 -----------------------
# .这时候你增加文件都是未跟踪的(如果之前并不存在这个文件,那么就没法跟踪了)
cp -r python/ BaseCode/ -----------------------
# .添加跟踪文件
git add --all # 添加全部文件
git add xxx -f # 添加某个被忽略的文件
-----------------------
# .检查当前文件状态
git status #现在已被跟踪,并处于暂存状态 -----------------------
# .提交更新
git commit -m "备注信息" -----------------------
# .1修改文件
# 要查看尚未暂存的文件更新了哪些部分(跟历史版本的对比)
git diff 修改的文件 # 后一般都是先把修改后的文件,git add 一下(添加修改都是这个命令)
#git其实提供了一个便捷的方法 git commit -a -m "xxx"
git commit -a -m "test skip git add" # .2删除文件 一样可以用 git commit -a -m "xxx" 来快速提交
git commit -a -m "test skip git add" -----------------------
# .推送到远程端(如果是多个远程仓库还是建议写全)
git push #默认是origin master #如果是多个远程仓库还是建议写全:(修改了origin也可以用git push来默认推送到clone的那个远程仓库)
git push origin master
# 11.同步代码
git pull
-----------------------
# 查看历史提交
git log # 常用的选项是 -p,用来显示每次提交的内容差异
git log -p - #查看最近两次提交 # 每次提交的简略的统计信息(应用场景:快速浏览小伙伴commit所带来的变化的时候)
git log --stat
git log --stat -p - #可以联合使用 --stat 选项在每次提交的下面列出所有被修改过的文件、有多少文件被修改了以及被修改过的文件的哪些行被移除或是添加了。 在每次提交的最后还有一个总结
扩展(冲突查明细): git log --pretty=format eg:(--graph是美化输出)
git log --pretty=oneline --graph #一行显示,数据量大的时候用比较方便
git log --pretty=format:"%h - %an, %ar : %s" #时间显示
-------------------------------------------------------------
扩展
1.clone指定分支:git clone -b name https://github.com/lotapp/cpython.git
2.fetch更新本地仓库两种方式:(有更简单的方法可以提一下)
//方法一
git fetch origin master //从远程的origin仓库的master分支下载代码到本地的origin master git log -p master.. origin/master//比较本地的仓库和远程参考的区别 git merge origin/master//把远程下载下来的代码合并到本地仓库,远程的和本地的合并 //方法二
git fetch origin master:temp //从远程的origin仓库的master分支下载到本地并新建一个分支temp git diff temp//比较master分支和temp分支的不同 git merge temp//合并temp分支到master分支 git branch -d temp//删除temp
todo
GPG防止伪签名提交:
基本上用不到,贴几个文章课后拓展一下:
https://www.freebuf.com/news/140413.html
https://help.github.com/articles/signing-commits
https://help.github.com/articles/generating-a-new-gpg-key
https://help.github.com/articles/managing-commit-signature-verification