GitHub 使用教程图文详解
https://www.cnblogs.com/xuxiaoxia/p/9482454.html
1、首先要先在github的官网注册一个属于自己的账号。https://github.com/
2、注册完成后需要一些简单的设置,先创建一个属于自己的仓库,repository
3、创建仓库
4、如何让自己电脑上的代码同步到Github上所创建的库当中?在这里,需要安装git的命令工具,Git Bash
嗯,就是这样的一个工具:
去Git的官网安装适合自己电脑的版本
安装好之后,双击打开Git Bash,就是这样的一个黑框界面:
首先要在本地创建一个ssh key ,这个的目的就是你现在需要在你电脑上获得一个密匙,就是咱们平时的验证码一样的东西,获取之后,在你的GitHub账号里边输入之后,你的电脑就和你的GitHub账号联系在一起了,这样以后就可以十分方便的通过Git bash 随时上传你的代码。下边介绍一下如果获得这个钥匙,又是如何输入到你的GitHub里边的呢。
上图这一栏 开始是你的计算机的名字在我这里就是hspcadmin @后边的内容是你的计算机型号,接下来就要开始创建属于你自己的秘钥,要在黑框里输入命令: (引号内需要改成你在注册GitHub的时候绑定的邮箱账号)
$ ssh-keygen -t rsa -C "your email@.com"
一路回车,出现如下界面:
说明你的密匙已经成功创建了,现在打开上述的存储.ssh文件的位置,打开id_rsa.pub或是id_rsa文件,复制里面的内容(秘钥):
现在需要登录你的Github账号,在settings界面中:
找到SSH and GPG keys这个选项之后,在网页右上角点击new SSH Key按钮创建秘钥,title是你给你的秘钥起一个标题,key里面就把你刚才复制的秘钥粘贴进去,点击add SSH KEY就可以了:
之后再回到Git Bash,输入命令:$ ssh -T git@github.com ,再输入yes, 出现如下界面,就说明链接成功了。
接下来还需要设置一些账号名,邮箱,(name最好和GitHub上边的一样,email是一定要是注册GitHub的那个邮箱地址)
下面就要将你在github上创建的仓库克隆到你的本地来,方便以后进行代码上传。
打开你所创建的仓库:
然后再打开Git Bash,将自己的文件存储定位在一个你代码所要存储的位置,在这里,我将定位在D盘当中(默认本地是在C盘当中):
出现如下界面,说明定位成功。
之后开始克隆一个仓库到本地:(gitclone后面的网址就是你之前创建的仓库的网址)
之后打开你所定位的D盘,就会出现一个跟你远程仓库一样的仓库文件夹:
打开这个文件夹,随意的创建一个文件,(在这个文件夹下你就可以上传代码了,在这里我保存了一个文件)
然后输入:ls命令,查看你目前所定位的文件夹中的文件:
先在可以看出,我刚才所创建的文件已经在了。
然后输入命令:git add "file_name" ,引号里面是你所要上传的文件名称,
然后在输入:git commit -m "描述内容,备注" ,输入之后出现以上情况:
然后在输入git push origin master 之后会出现一个弹窗:
输入你之前注册github账号时的账号以及密码,点击login .出现以下界面:
说明登录失败了,这时候根据提示继续再一次输入账号,密码 即可。(密码输入会弹出一个框再输入)
出现上面界面,表示已经成功了。现在打开你的Github网站,找到你所创建的库,
你所创建的文件已经上传上去了。
再之后,你只需要将你的代码,放到库的对应的文件夹中,然后使用,git add 、git commit -m " " 、最后git push origin master,
将你的代码提交就可以了。
创建分支:
使用Git命令来创建.
1.首先是克隆下远程仓库的项目.
git clone remote_url
2.和远程仓库建立关联.
git remote add origin remote_url
3.查看所有分支.
git branch -a(查看所有分支包括本地分支和远程分支).
git branch -r(查看远程分支).
4.本地创建新的分支.
git checkout -b branchname(直接新建一个分支然后切换至新创建的分支).就是创建加切换分支.
等价于命令:git branch branchname+git checkout branchname.
git checkout branchname(是切换分支名).
5.将新分支推送至GitHub.
git push origin branchname
6 查看Git命令方式创建分支的结果.
删除分支
删除本地分支
git branch -d branchname
删除GitHub上面的远程分支.
git push origin: branchname
备注:
问题: 创建ssh key时遇到“Bad escape character ‘ygen’.”
image.png
$ ssh -keygen -t rsa -C "XXXXXXX@qq.com"
Bad escape character 'ygen'.
分析原因:ssh -keygen之间出现了空格,正确命令是没有空格的
参考博文:https://blog.csdn.net/hcjsjqjssm/article/details/84558229
//
GitHub 新手详细教程
一.安装Git
1.通过官网(https://www.git-scm.com/download/)下载git,进入官网,如下图所示:
2.选择对应的操作系统后,页面跳转并自动下载对应的Git版本,如下图所示:
3.下载完成后,找到下载文件所在的位置,双击即可进行安装:
4.Git安装较为简单,一直点击下一步等待安装完成即可:
5.任意进入一个目录,右键如果能出现Git的功能菜单说明安装成功:
6.
二.注册Github
1.进入Github官网(https://github.com/ ),如图:
2.开始进行注册(用户名要没有被注册过的才允许),且用户名只能包含字母数字字符或单个连字符,不能用连字号开头或结尾。建议使用谷歌浏览器,可以转换成中文(英语好可忽略此条),如图所示:
3.创建用户,直接点‘continue’按钮,如下图所示:
4.之后是一个调查的页面,可以直接跳过,如下图所示:
5.此时我们先进行注册邮箱的验证,如图:
6.进行注册时的邮箱,进行GitHub授权验证,如图:
7.验证成功后,创建一个存储库,如下图:
8.填写好参数后,即可创建成功,如图:
9.创建好的仓库如下图所示:
10.
三.Git和GitHub账号关联
首先要在本地Git上创建一个ssh key,它会生成public/private rsa key两部分,获取之后,在你的GitHub账号里边输入之后,你的电脑就和你的GitHub账号联系在一起了,这样以后就可以十分方便的通过Git bash 随时上传你的代码。
1.本地Git创建ssh key:
首先使用Git Bash进入控制台,输入 ssh-keygen-t rsa-C "emailaddress";(建议emailaddress使用Github注册时的邮箱地址)
2.出现此提示,首先检查本机公钥:
cd .ssh
3.提示No such file or directory 说明你是第一次使用git,如果不是第一次使用,请执行下面的操作,使用命令清理原有ssh密钥:
mkdir key_backup
cp id_ras key_backup
rm id_rsa
4.使用ssh-keygen -t rsa -C “您的邮箱地址”命令,重新生成新的密钥:
5.至此,密钥生成成功。下面要将公钥添加到GitHub中,按照4中的路径使用记事本打开id_rsa.pub,复制粘贴到GitHub中。
6.登录进入GitHub,进入设置页面,如图:
7.进入SSH和GPG密钥添加页面,如下图所示:
8.添加好title后将公钥粘贴在对应的key中,如下图所示:
9.添加成功,界面将会提示,如图:
10.检查Git和GitHub账户是否绑定成功,如下图所示,在Git Bash中输入: ssh -T git@github.com,第一次绑定的时候输入上边的代码之后会提示是否continue,在输入yes后如果出现了:You've successfully authenticated, but GitHub does not provide shell access 。
11.输入下面的命令,配置账户。name最好和GitHub上边的一样,email是一定要是注册GitHub的那个邮箱地址;
12.测试将GitHub上的代码拉到本地。任意找到一个目录(最好是自己同意放代码的地方),右键进入Git Bash界面,输入命令:git clone https://github.com/DoneZhgd/Test.git(为GitHub中项目分支的地址),如图:
13.此时,可以看到新建一个Test的目录且里面为从GitHub中拉下的代码,如图:
四.
Git 的origin和master分析 push/diff/head(转)
1、origin/master : 一个叫 origin 的远程库的 master 分支
2、HEAD指向当前工作的branch,master不一定指向当前工作的branch
3、git push origin 本地分支A : 远程分支B ---> push 本地分支A到远程库origin的分支B
首先要明确一点,对git的操作是围绕3个大的步骤来展开的(其实几乎所有的SCM都是这样)
1. 从git取数据(git clone)
2. 改动代码
3. 将改动传回git(git push)
这3个步骤又涉及到两个repository,一个是remote repository,再远程服务器上,一个是local repository,再自己工作区上。其中
1, 3两个步骤涉及到remote server/remote repository/remote branch,
2涉及到local repository/local branch。git clone 会根据你指定的remote server/repository/branch,拷贝一个副本到你本地,再git push之前,你对所有文件的改动都是在你自己本地的local repository来做的,你的改动(local branch)和remote branch是独立(并行)的。Gitk显示的就是local repository。
在clone完成之后,Git 会自动为你将此远程仓库命名为origin(origin只相当于一个别名,运行git remote –v或者查看.git/config可以看到origin的含义),并下载其中所有的数据,建立一个指向它的master 分支的指针,我们用(远程仓库名)/(分支名) 这样的形式表示远程分支,所以origin/master指向的是一个remote branch(从那个branch我们clone数据到本地),但你无法在本地更改其数据。
同时,Git 会建立一个属于你自己的本地master 分支,它指向的是你刚刚从remote server传到你本地的副本。随着你不断的改动文件,git add, git commit,master的指向会自动移动,你也可以通过merge(fast forward)来移动master的指向。
$git branch -a (to show all the branches git knows about)
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
$git branch -r (to show remote branches git knows about)
origin/HEAD -> origin/master
origin/master
可以发现,master就是local branch,origin/master是remote branch(master is a branch in the local repository. remotes/origin/master is a branch named master on the remote named origin)
$git diff origin/master master (show me the changes between the remote master branch and my master branch).
需要注意的是,remotes/origin/master和origin/master的指向是相同的
$git diff origin/master remotes/origin/master
//
Git Push:
git push origin master
origin指定了你要push到哪个remote
master其实是一个“refspec”,正常的“refspec”的形式为”+<src>:<dst>”,冒号前表示local branch的名字,冒号后表示remote repository下 branch的名字。注意,如果你省略了<dst>,git就认为你想push到remote repository下和local branch相同名字的branch。听起来有点拗口,再解释下,push是怎么个push法,就是把本地branch指向的commit push到remote repository下的branch,比如
$git push origin master:master (在local repository中找到名字为master的branch,使用它去更新remote repository下名字为master的branch,如果remote repository下不存在名字是master的branch,那么新建一个)
$git push origin master (省略了<dst>,等价于“git push origin master:master”)
$git push origin master:refs/for/mybranch (在local repository中找到名字为master的branch,用他去更新remote repository下面名字为mybranch的branch)
$git push origin HEAD:refs/for/mybranch (HEAD指向当前工作的branch,master不一定指向当前工作的branch,所以我觉得用HEAD还比master好些)
$git push origin :mybranch (再origin repository里面查找mybranch,删除它。用一个空的去更新它,就相当于删除了)
/
转载自:https://blog.csdn.net/u013749540/article/details/78295420
创建本地分支看这里 https://blog.csdn.net/torpidcat/article/details/105550496
推送本地分支local_branch到远程分支 remote_branch并建立关联关系
a.远程已有remote_branch分支并且已经关联本地分支local_branch且本地已经切换到local_branch
git push
b.远程已有remote_branch分支但未关联本地分支local_branch且本地已经切换到local_branch
git push -u origin/remote_branch
c.远程没有remote_branch分支并,本地已经切换到local_branch
git push origin local_branch:remote_branch