For whom
Git是一个非常复杂的版本管理系统,你可能只用过github来clone别人的项目到本地,没关系,本文将带你初探git,学习完本文,你将学会利用Git上传自己的项目到github并维护自己的项目。
What is Git
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。说简单点,Git可以很轻松的帮你管理你的项目的各个版本。
Git的三棵树
Git里面有三个比较重要的概念,又称为Git的三棵树,我们的项目在本地就是在这三棵树之间进行传递。
Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Git的安装与配置
- 安装
sudo apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev #安装git依赖包
sudo apt-get install git
git --version #验证git是否安装完成
- 本地与Github的连接
git config --global user.name "xyl3902596" #用自己的github用户名代替
git config --global user.email "554641596@qq.com" #用自己的github上的邮箱代替
配置完成后,需要创建验证用的公钥,因为git是通过ssh的方式访问资源库的,所以需要在本地创建验证用的文件。使用命令
ssh-keygen -C '554641596@qq.com' -t rsa
创建公钥后,需要上传到github,公钥的位置在 ~/.ssh/id_rsa.pub,因此
gedit ~/.ssh/id_rsa.pub
Copy该公钥复制到github SSH_keys
验证本地是否和你的github相连,看到下面的结果就说明连接成功了。到目前为止,我们已经完成了本地git的配置。
ssh -T git@github.com
建立远程仓库
登录github网站,建立一个新的仓库
本地操作
- 仓库初始化
在目的路径下面使用git init,记得新建一个README.md文件。
- 将文件添加到暂存区
git add * #添加所有文件到暂存区
git status * #git status命令用于显示工作目录和暂存区的状态。使用此命令能看到那些修改被暂存到了, 哪些没有, 哪些文件没有被Git tracked到。
- 将暂存区的文件提交到本地仓库
git commit -m "first commit" # "first commit" 是这次提交的备注
-
本地仓库的文件Push到远端仓库
首先要连接本地仓库和远程仓库
git remote add origin https://github.com/xyl3902596/test.git ##origin是设置的远程主机名
注意:如果开始的本地文件夹是git clone下来的,那么本地仓库是自动和默认名为origin的远程主机的远程仓库相连的,则不需要这一步。
接着就可以将本地仓库的内容push到远程仓库了
git push origin master
我在使用这个指令的时候出现了非常奇怪的错误。
Failed to connect to 127.0.0.1 port 1080: Connection refused
查了以后发现是由于我之前设置了daili,因此用
env | grep -i proxy
发现有daili,使用下面的指令取消daili,重启电脑后生效。
unset socks5_proxy
如果远程仓库有更新,那么使用
git pull origin master
git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。
这时候你会发现本地文件也被修改了
小结
路漫漫其修远兮,吾将上下而求索,Git博大精深,本文只是为初学者快速入门而写,Git的多分支管理机制是Git的核心,将在未来某个时间和童鞋们一起分享。