git 初学教程

下载安装Git后,需要先配置好账户/仓库的SSH公钥。

$ ssh-keygen -t rsa -C "xxxxx@xxxxx.com" 

按照提示完成三次回车,即可生成 ssh key。通过查看 ~/.ssh/id_rsa.pub 文件内容,获取到你的 public key

$ cat ~/.ssh/id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDgBvwu....
QQ20191125-180144@2x.png

然后copy 公钥,在github上打开设置


QQ20191125-195147@2x.png

找到 SSH and GPG keys 然后点右上角添加


QQ20191125-195219@2x.png

QQ20191125-195326@2x.png

好,到了这一步,你的git已经可以访问仓库
当然你可以配置多个SSH-Key,命令如下
$ ssh-keygen -t rsa -C 'xxxxx@company.com' -f ~/.ssh/github_id_rsa
$ ssh-keygen -t rsa -C 'xxxxx@qq.com' -f ~/.ssh/gitee_id_rsa

然后在~/.ssh 目录下新建一个config文件,添加如下内容(其中Host和HostName填写git服务器的域名,IdentityFile指定私钥的路径)

# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa
# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_id_rsa

然后用下面的命令测试一下

$ ssh -T git@gitee.com
$ ssh -T git@github.com

成功的话会返回下面的信息,以github为例


QQ20191125-200435@2x.png

初始化仓库

创建新文件夹,打开,然后执行

$ git init 

以创建新的 git 仓库
当然你也可以检出一个远程的代码仓库

$ git clone username@host:/path/to/repository

或者创建一个本地仓库的克隆版本

$ git clone /path/to/repository

添加和提交

$ git add filename   添加指定文件
$ git add .       提交未跟踪和修改文件,但是不处理删除文件
$ git add all    可以提交未跟踪、修改和删除文件
$ git add file1 file2 file3  一次性提交多个文件,file之间用空格隔开
$ git add  dir   添加一个文件夹

添加完文件之后,就需要commit了

$ git commit -m "注释"

这个时候你的改动就算是已经提交到HEAD了,但是,到这个时候你的改动还没有推到远程仓库
所以接下来就需要把提交的代码推到远端仓库

$ git push origin xxxx

执行了此命令,你的代码才会被推到远端仓库

分支

在开发过程当中肯定是需要用到分支的,创建一个新的分支命令

$ git checkout -b xxxx

切回主分支

$ git checkout master 

如果想删除刚才新建的分支,执行以下命令

$ git branch -d xxxx

你创建了新分支之后,除非你把新分支推到远端仓库,否则别人是看不到的

$ git push origin xxxx

更新与合并

要更新你的本地仓库到最新改动,执行

$ git pull origin xxxx

这里 pull 其实是执行了 fetch 和 merge 两个动作
要合并其他分支到你的当前分支,执行

$ git merge xxxx

pull 和 merge 的时候Git都会尝试自动合并代码,但是有时候会出现冲突,这个时候就需要你
自己去手动解决冲突,改完之后,你还需要

$ git add filename

当然在合并之前你可以使用一下命令来预览两个分支之间的差异

$ git diff master develop

标签

列出已有标签

$ git tag 
v0.1
v1.3

或者找某个版本的标签

$ git tag -l 'v1.4.2.*'
v1.4.2.1
v1.4.2.2
v1.4.2.3
v1.4.2.4

这里是允许使用匹配符的
新建一个标签

$ git tag -a v1.0 -m 'my version 1.0'

这个时候你就新建了 v1.0这个标签,假如你想看这个标签对应的版本信息

$ git show v1.0

然后把标签推到远端仓库

$ git push origin v1.0

LOG

Git也是有历史记录的,如果你想看本地仓库的历史记录

$ git log
QQ20191125-204335.png

你可以添加一些参数来修改他的输出,从而得到自己想要的结果。 只看某一个人的提交记录:

$ git log --author=xxxx

或者你想压缩成每个记录一行

$ git log --pretty=oneline

又或者你想通过 ASCII 艺术的树形结构来展示所有的分支, 并且每个分支都要标示他的名字和标签:

$ git log --graph --oneline --decorate --all
QQ20191125-204913.png

你想看看哪些文件改动了

$  git log --name-status
QQ20191125-205049.png

以上这些,只是git log的一小部分参数,也是比较常用到的,如果你想知道更多的参数,参考

$ git log --help

未完待续。。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。