Github 基本操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/WYpersist/article/details/81462144

Github基本操作

  1. 注册账户以及创建仓库
    注册账号:https://github.com
  2. 安装客户端msysgit
    github是服务端,还需要一个git客户端msysgit,这个只是提供了git的核心功能。装完msysgit后右键鼠标会多出一些选项来,在本地仓库里右键选择Git Init Here,会多出来一个.git文件夹,这就表示本地git创建成功。
  3. 配置SSH

SSH是一种连接方式,一方面免于你总是在连接时输入用户和密码,另一方面增加安全性。理解是,ssh是两段很长的字符串,一段是锁,另一段是钥匙。你把锁放在你的github帐户上,而电脑上留有你的钥匙,每当连接时,git会自动用钥匙去开锁。

第一步:生成钥匙和锁

$ ssh-keygen -t rsa -C "[email protected]"
后面的[email protected]改为你的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。成功的话会在~/下生成.ssh文件夹。

第二步:将锁放到github的帐户里

C:/Users/用户名(你的windows用户)/.ssh/文件夹中,用记事本打开其中的id_rsa.pub文件,全部内容复制。回到https://github.com,进入Account Settings,左边选择SSH Keys,Add SSH Key,title随便填,粘贴key。

第三步:测试是否成功

为了验证是否成功,在git bash下输入:

$ ssh -T [email protected]

如果是第一次的会提示是否continue,输入yes就会看到:You’ve successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github。

  1. 设置用户信息

$ git config --global user.name "Your Name"//给自己起个用户名

(这里的yourname相当于你的一个签名,而非github的登录名。以后你提交的文档都会有这个签名)

$ git config --global user.email "[email protected]"//填写自己的邮箱

(这里输入的是github的帐户邮箱)

  1. 工作区和暂存区

工作区(Working Directory):就是你在电脑里能看到的目录,比如我的hello文件夹就是一个工作区

 

版本库(Repository):工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

 

我们把文件往Git版本库里添加的时候,是分两步执行的:

第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。

可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。

 

git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支。

现在版本库变成了这样,暂存区就没有任何内容了:

 

  1. 远程仓库

1 创建远程仓库。

回到github首页,点击页面右上角“New Repository”

填写项目信息:

project name: test

description : my first repository

点击“Create Repository” ,在github上的创建一个仓库。

 

2 在本地创建一个相同的仓库

在自己电脑上任意一个文件夹,新建一个目录,目录名与在github上所建库的名字相同,这里是Hello。然后右击文件夹,在弹出菜单中选择git bash,弹出命令行窗口,输入:git init。此时git会在这个文件夹下创建一个隐藏目录,这个目录就是本地库了。

3、 绑定本地库和远程库

接下来我们要做的就是把本地仓库传到github上去,然后添加远程地址:

$ git remote add origin [email protected]:yourName/yourRepo.git

后面的yourName和yourRepo表示github的用户名和刚才新建的仓库hello,加完之后进入.git,打开config,这里会多出一个remote “origin”内容,这就是刚才添加的远程地址,也可以直接修改config来配置远程地址。
3、提交、上传

接下来在本地仓库里添加一些文件,比如在仓库新建一个test.txt。

$ git add test.txt        //更新test.txt文件
$ git commit -m ‘first commit’     //提交更新,并注释信息“first commit”

$ git push origin master

git push命令会将本地仓库推送到远程服务器。

4、从远程库克隆

首先,登陆GitHub,创建一个新的仓库,名字叫gitskills。我们勾选Initialize this repository with a README,这样GitHub会自动为我们创建一个README.md文件。创建完毕后,可以看到README.md文件。现在,远程库已经准备好了,下一步是用命令git clone克隆一个本地库:

$ git clone [email protected]:yourName/gitskills.git

  1. 分支管理

1、创建和合并分支

每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。

一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点:

 

每次提交,master分支都会向前移动一步,这样,随着你不断提交,master分支的线也越来越长:

当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上:

从现在开始,对工作区的修改和提交就是针对dev分支了,比如新提交一次后,dev指针往前移动一步,而master指针不变:

 

假如我们在dev上的工作完成了,就可以把dev合并到master上。Git怎么合并呢?最简单的方法,就是直接把master指向dev的当前提交,就完成了合并:

合并完分支后,甚至可以删除dev分支。删除dev分支就是把dev指针给删掉,删掉后,我们就剩下了一条master分支:
分支指令:

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

2、分支策略

在实际开发中,我们应该按照几个基本原则进行分支管理:

首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活。

那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;

你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。

 

  1. 协作开发

第一步: 进行Fork
第二步: 进行克隆
利用右侧边栏中的URL对repo进行克隆:
第三步: 添加上游远程仓库
git remote add upstream https://github.com/weig/test.git(别人的repository) // 新建分支用于存放别人的repository

步骤四:检查主分支
不过在大家执行自己的变更前,请先对主分支进行检查:
步骤五:提交
现在,大家可以执行变更并创建commit以追踪具体变更内容。
步骤六:推送
接下来,大家将把主题分支推送到自己的项目fork当中。
第七步:创建pull request

#########################################################

常见错误

如果输入$ git remote add origin [email protected]:yourName(github帐号名)/yourRepo(项目名).git

提示出错信息:fatal: remote origin already exists.

解决办法如下:

1、先输入$ git remote rm origin

2、再输入$ git remote add origin [email protected]:yourName(github帐号名)/yourRepo(项目名).git就不会报错了!

3、如果输入$ git remote rm origin还是报错的话,error: Could not remove config section 'remote.origin'. 我们需要修改gitconfig文件的内容

 4、找到你的github的安装路径。

 5、找到一个名为gitconfig的文件,打开它把里面的[remote "origin"]那一行删掉就好了!

如果输入$ ssh -T [email protected]出现错误提示:Permission denied (publickey).因为新生成的key不能加入ssh就会导致连接不上github。

 解决办法如下:

 1、先输入$ ssh-agent,再输入$ ssh-add ~/.ssh/id_key,这样就可以了。

 2、如果还是不行的话,输入ssh-add ~/.ssh/id_key 命令后出现报错Could not open a connection to your authentication agent.解决方法是key用Git Gui的ssh工具生成,这样生成的时候key就直接保存在ssh中了,不需要再ssh-add命令加入了,其它的user,token等配置都用命令行来做。

 3、最好检查一下在你复制id_rsa.pub文件的内容时有没有产生多余的空格或空行,有些编辑器会帮你添加这些的。

如果输入$ git push origin master提示出错信息:error:failed to push som refs to .......

 解决办法如下:

 1、先输入$ git pull origin master //先把远程服务器github上面的文件拉下来

 2、再输入$ git push origin master

 3、如果出现报错 fatal: Couldn't find remote ref master或者fatal: 'origin' does not appear to be a git repository以及fatal: Could not read from remote repository.

 4、则需要重新输入$ git remote add origin  [email protected]:yourName(github帐号名)/yourRepo(项目名).git

github常用命令

git remote add upstream https://github.com/weig/test.git(别人的repository) // 新建分支用于存放别人的repository

git clone https://github.com/weig/test.git​​​​​​​克隆到本地

git fetch branch2//更新信息

git merge branch2/master //merge本地信息

git add . //添加新文件或者更改新文件

git remove ** //删除文件

git commit -m “by who do what” //提交文件到本地

git push  push到服务器上

git pull origin master从服务器上拉取信息(更新操作)

git remote 查看repository上的所有分支

git branch -a 查看所有分支

git branch -r 查看远程分支

git branch -d *** //删除分支

git branch *** //新建分支

git checkout ***//切换分支

git status //查看状态

git log //查看提交修改记录

 

猜你喜欢

转载自blog.csdn.net/WYpersist/article/details/81462144