Git learn–One
本系列博客是本人在实验楼的课程的笔记。我十分喜欢实验楼这个平台,希望有感兴趣的同学可以试试实验楼平台的git实验课(免费),博客使用的系统为Ubuntu16.04。
初始化仓库
首先我们要安装git。在Ubuntu16.04上,使用apt就可以轻松安装。
然后建立个人信息:
git config --global user.name "name"
git config --global user.email "email"
建立一个git仓库:
1,Clone 一个仓库:git clone aRepo
2,初始化仓库:git init
同时在当前路径下利用ls -la
命令可以发现一个.git
目录被创建。
连接远程仓库:
git remote add 仓库名 URL
简单使用实例
首先更改和创建目录,例如我们利用echo写入一个文件:
echo "hello world" >> hello
可以利用git status
来查看git仓库的状态。
然后利用git add
把更改加入缓存区——git commit
提交文件。
常用的操作流程如下:
git add *
git commit -m “hello world”//-m “注释”
git commit -a -m “hello world”//-a 不添加新建文件
完成提交后,同步本地仓库:
git push origin master//同步本地master分支
新建分支与合并分支
创建一个新分支:
git branch
切换分支:
git checkout <name>
删除分支:
git branch -d <name> //-D强制删除
在新分支中也可以同之前说的进行各种操作。然后利用将分支与master合并,从而保证代码的唯一性。
在branch1分支中合并branch2:
git checkout branch1
git merge -m 'merge branch2' branch2
如果两个分支各有不同的修改,那么将发生冲突——冲突会写入存在冲突的文件。如果要继续合并,则需要人工进行修改。
当然可能合并了之后,你觉得不满意。所以需要撤销合并:
git reset --hard HEAD^
如果两个分支的内容相同,那么会执行快速向前合并,git不创建新的提交,只是讲当前分支指向合并进来的分支。
Git日志
通过git log
可以查看所有的commit日志。
git log和man采用的是相同的显示软件,所以快捷操作基本相同。
git log有很多选项,可以利用–help来查看。
有用的几个参数:
--stat
对log进行统计
--pretty=formatType
控制log输出格式,formatType可以有oneline,short medium full fuller,email和raw多种格式。如果这几个格式不适用的话,可以利用--pretty=format
来自己定义格式。
--graph
打印一个分合并情况的树
--topo-order
按拓扑顺序排序显示,默认安装时间顺序显示。
--reverse
逆序输出
比较提交
比较修改或提交的文件内容:
git diff
若是比较缓存区的文件和上次提交的差别:
git diff --cached
比较两个分支差别:
git diff branch1 branch2 //若必较当前分支,则不需要branch2参数
统计哪些文件被改动,多少行被改动:
git diff branch1 --stat
多人协作
将当前仓库分支和其他仓库合并:
git pull 路径 分支
如果是pull将源库,那么:
git pull
即可pull源库。
查询源库地址:
git config --get remote.origin.url
将其他仓库产生当前仓库的一个分支:
git fetch 路径 分支
如果需要长时间使用某个仓库——那么不妨设置固定名字:
git remote add 名字 路径
zhgit fetch /repo1 master
等价于git remote add r1 /repo git fetch r1
在修改之后,可以将分支发布:
git push 地址 // 可以是SSH或者http(s)
如果发生冲突的话,那么建议先利用git pull
合并最新的修改,然后再执行push。
标签
git中标签的作用主要是为了标记版本。
查看当前目录下的所有标签:
git tag
可以对git的对象添加标签,格式:
git tag 标签 SHA4码的前8位
git tag -a 标签 SHA4码前8位 -m “注释”
添加签名能让git commit更为可靠,设置方法:
vim .git/config
然后修改其中的signingkey=
或者也可以从命令行来设置:
git config (–global) user.signingkey
然后在创建的时候利用-S
或者-u
来设置。
git tag -S 标签 SHA4码的前8位
git tag -u 签名 标签 SHA4码的前8位