标签 git 下的文章

git和svn不同,没有一个中央服务器用于存放代码,作为一个分布式的版本控制工具,每台主机都是一个仓库。

如果多个人之间要分享代码,就需要一台远程的仓库协助完成,git中通过git remote指令来完成这些操作。

使用git remote -v可以看到所有的远程主机:

> git remote -v
origin    git@github.com:maqianos/gitstudy.git (fetch)
origin    git@github.com:maqianos/gitstudy.git (push)

- 阅读剩余部分 -

一、分支介绍

分支是git的特性之一,它使得代码可以有多中不同的方向和代码路线,协作过程中彼此之间互不影响,大大增加了代码库的灵活性。

一般来说,项目的开发模型为:给定主分支master用于统筹所有代码,其他的功能拆散在子分支上开发,最后都合并到master。例如一个用于用户登录功能的代码库,用户A开启分支完成账户注册,用户B开启分支完成用户授权,两者在开发期间互不影响,开发完成后合并到主分支上合并完成总功能。

中间蓝色的表示主分支,上下两条表示子分支,子分支在初始时分离,最后都合并于主分支。

git中和分支相关的操作使用branch命令完成,最简单的用法就是git branch,它用于查看当前所在分支,加上-v选项显示详细信息。

显示的分支中默认只显示本地分支,如需显示远程分支要加上-a选项。

- 阅读剩余部分 -

习惯了svn的svn co,觉得git checkout不方便遂通过git的aliascheckout重命名为co

这个操作以前一直都是相安无事,今天在一台新机器上运行时遇到以下问题:

> git co
fatal: cannot exec ''git-co'': Permission denied
> git ss  # ss = status -s
fatal: cannot exec ''git-ss'': Permission denied

网上找了半天没有找到解决方案,并且发现不使用简写执行命令没有问题。

于是猜测可能是版本太低的原因,当前的版本是1.7,升级到2.17问题就不存在了,升级参考CentOS6.5源码安装Git

|
| -(n) | 仅显示最近的 n 条提交 |
| --since, --after | 仅显示指定时间之后的提交。 |
| --until, --before | 仅显示指定时间之前的提交。 |
| --author | 仅显示指定作者相关的提交。 |
| --committer | 仅显示指定提交者相关的提交。 |

$ git log --after=2.weeks --pretty=oneline
37db3c6686ff9382eb1ba6adaa4bae9a77459b69 (HEAD -> master) update
36c2d3c6285618f99706ae962c5a41be47253c54 first commit
$ git log --author="马谦马谦马谦" --pretty=oneline
37db3c6686ff9382eb1ba6adaa4bae9a77459b69 (HEAD -> master) update
36c2d3c6285618f99706ae962c5a41be47253c54 first commit

问题描述

使用git pull 或者git push 时出现以下错误信息:

fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

问题原因及解决方案

上传或者下拉的文件太大了,导致传输失败,在配置文件中修改缓存大小即可。

git config --global http.postBuffer 524288000

0x01 问题描述

使用git mv 重命名文件时出现以下错误信息:

fatal: bad source, source=go/src/handle/add.go, destination=go/src/handle/add.go

0x02 问题原因

源文件go/src/handle/add.go 在本地已经被删除了,但是git 库中并没有被删除,所以重命名该文件的上级目录时产生了冲突。

通过git status 可以查看到当前文件状态是已经删除:

[ma@ma test-src]$ git status -s
 D handle/add.go
 D handle/add_test.go

0x03 解决方法

使用git rm命令删除对应的文件,然后再重命名。

一、创建github仓库

点击浏览器右上角的+ 号,选择New repository 开始创建一个仓库:

进入创建仓库页面,设置仓库的名字,下面可以选择自动创建一个README.MD 文件:

创建成功后会跳转到仓库首页,点击Clone or download 会出现该仓库的地址,浏览器当前地址栏中的地址也是这个地址。

- 阅读剩余部分 -

. 1 root root 1675 Dec 18 04:01 /root/.ssh/id_rsa
-rw-r--r--. 1 root root 397 Dec 18 04:01 /root/.ssh/id_rsa.pub


其中`id_rsa` 是私钥,`id_rsa.pub` 是公钥,我们要把公钥的内容上传到`github` 。

查看公钥并复制:

[root@localhost git-2.15.1]# cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArPMU4FnFQii0SYmUg2USSV6FId8eILptRew7iQqDyEtZIe6cKB6Z8Rkqk3ZKd8VclbAKKRJZCnwR6wHHXmYtm/i19DmGOHDuxuY+MkWtWB3bFsQKlQe4OaAoCvLqlRS7S+3Jppw5Uu5zZf85AABmutbGZq0/Fk*lbjJZ+uCchBf3VttiWD0gnyTjubYiBc4i5StOefGrfogTYz22dNZodguwcBb83v09zqp5l46WeIWG33sse+Me4R5B5Q== maqian@dyxmq.cn


打开github,右上角`Settings` 进入设置界面,在`SSH and GPG keys` 栏新建一个`ssh key` :![](https://i.maqian.xin/2017/12/1.png)

填入复制的密钥对,`Title` 可以随便写:

![](d:/Users/maqian/Pictures/wordpress/文章内容/git/2.png)![](https://i.maqian.xin/2017/12/2.png)

测试是否验证成功:

[root@localhost git-2.15.1]# ssh -T git@github.com
The authenticity of host "github.com (192.30.255.113)" can"t be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Hi madawang! You"ve successfully authenticated, but GitHub does not provide shell access.