Linux基础※※※※如何使用Git in Linux(二)

参考资料:

1. http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

2. Git-简明教程

3. Github常见操作和错误

4. Pro Git

5. Github上传error: src...解决方案

Git与Github之间传输

Git的定义:

"Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency"

Github的定义:

"GitHub is a web-based Git repository hosting service, which offers all of the distributed revision control and source code management (SCM) functionality of Git as well as adding its own features."

Git是一个版本控制系统,它是一个管理你源代码修改历史的工具,而Github则提供Git Repositories的远程托管服务。实际上,我们完全可以不需要Github,而直接用Git作为一个本地的版本控制系统。Github从某种意义上,有备份本地资源和利于合作的意思。

 

                    图1 Github支持的传输的协议      

由上图可以看出,Github支持两种协议:SSH和GPG协议进行传输。

sudo ssh-keygen -t rsa -C "youremail@example.com"

可以按上边的命令,创建ssh的公钥和私钥,并将公钥复制到Github上。请使用下边的命令进行测试ssh是否能通信成功:

sudo ssh -T git@github.com

关联本地Git项目与Github项目

在本地创建项目testProj将其关联到Github上创建的项目testProj。

创建本地项目testProj:

sudo mkdir testProj
cd testProj
sudo git init

在Github上创建testProj项目

          图2 在Github上创建项目

将本地项目与Giihub项目关联:

sudo git remote add origin git@github.com:yourUserName/testProj.git

或则,用下边的命令关联

sudo git remote add origin https://github.com/yourUserName/testProj.git

如果碰到出错信息:fatal:remote origin already exists,则先输入下边命令删除当前项目的origin,再输入上边的命令关联。

sudo git remote rm origin

如果仍然还有上边的错误,就得看gitconfig文件了,并将其中关于 remote origin的项删除再继续关联。

创建readme.txt,并将其push到github上。

sudo touch readme.txt
sudo git add readme.txt
sudo git commit -m 'Add readme.txt'

sudo git push origin master

注意:如果没有创建readme.txt文件,而直接调用最后一行的代码,会产生error: src refspec master does not match any(不能push空目录)。

现在,我们就可以在本地修改,并将改动push到remote的Github上了。另外,注意将本地push到远程时,readme.txt是在本地创建的,远程创建只是一个空目录。

远程克隆到本地

 在远程Github上创建testProj2,里面包含一个README文件,且添加内容如下:

                    图三 在Git上创建testProj2

使用如下命令将远程Github项目testProj2克隆到本地:

sudo git clone git@github.com:yourUserName/testProj2.git

 ☢ 创建并合并分支

在创建分支前,我们需先切换到testProj2里。

cd testProj2

然后,创建分支dev:

sudo git branch dev

然后,切换到分支dev:

sudo git checkout dev

注意:上边两条命令等价于下边一条命令:

sudo git checkout -b dev

然后,我们可以查看本地所有分支,其中,当前分支前会有一个*号:

sudo git branch

查看远程分支:

sudo  git branch -r

然后,对README.md文件进行修改,并提交。

然后,切换到master分支,此时,dev分支的改动并不在master分支上,所有我们看不见刚才的改动:

sudo git checkout master

然后,将dev合并到master上:

sudo git merge dev

合并完后,删除dev分支:

sudo git branch -d dev
原文地址:https://www.cnblogs.com/AmitX-moten/p/5540065.html