Github安装和使用(详细)
Github
(原创:黑小子-余)
小编我是一名Git新手,然后花三天时间通过查找网上资料,了解Git的简单使用。本次我就实战操作git安装、github仓库创建、上传代码到github上、从github下载代码到本地的一整套流程,19:00点了,有点累了,该下班了,希望明天能更好但愿青春和努力不会辜负你我,不说了,说的我有点想家了,广州下雨了,还好带了洗发露,该出去洗头了。
GIT客户端Win安装和仓库创建
一、首先去官网下载git:https://www.git-scm.com/download/ ,(我下载的是64位的)。
二、git客户端安装比较傻瓜式,我在之前的博客中已经介绍了它的安装,这里我不再说明,点这个链接进去:Java开发环境配置Window10。
三、git客户端完毕后,鼠标有键桌面会有两个图标。
四、开始来搭建一个github仓库,和使用git客户端上传本地代码。
首先你要登录github官网,需要一个github账号,所有还没有的话先去注册吧!官网地址:https://github.com/ 。
五、注册登录然后开始码农生涯一次玩git。
(1)创建项目(仓库),打开首页就看到了,我个人建议新手安装一个网易有道词典,因为我的English菜到每次英语考试不及格,所以每次遇到比较陌生英语就需要借助翻译工具。
(2)
填写相应信息后点击create即可
Repository name: 仓库名称
Description(可选): 仓库描述介绍
Public, Private : 仓库权限(公开共享,私有或指定合作者)
Initialize this repository with a README: 添加一个README.md
gitignore: 不需要进行版本管理的仓库类型,对应生成文件.gitignore
license: 证书类型,对应生成文件LICENSE
(3)创建完成,项目中有。
(4)OK,项目(仓库)创建完毕,接下来就是使用Git客户端了。
GIT上传本地代码
一、GIT上传代码有很多种方法,我所知两种,我先讲第一种。首先右键你的项目,如果你之前安装git成功的话,右键会出现两个新选项,分别为Git Gui Here,Git Bash Here,这里我们选择Git Bash Here,进入如下界面,erp_parent 即为我的项目名。
接下来输入如下代码(关键步骤),把github上面的仓库克隆到本地。
(1)git clone https://github.com/ycs0403/ycs_erp.git (把https://github.com/ycs0403/ycs_erp.git替换成你之前复制的地址,然后按回车)。
回车以后你的本地项目文件夹下面就会多出个文件夹,该文件夹名即为你github上面的项目名,如图我多出了个ycs_erp文件夹,然后把本地项目文件夹下的所有文件(除了新多出的那个文件夹不用),其余都复制到那个新多出的文件夹下。
(2)接着继续输入命令: cd ycs_erp,进入ycs_erp文件夹。
(3)然后依次输入以下命令即可完成其他剩余操作:
git add . (注:别忘记后面的 . ,. (点) 与 add 之间有空格,此操作是把Test文件夹下面的文件都添加进来)
git commit -m ”提交信息” (注:“提交信息”里面换成你需要备注的信息,如“first commit”,“我的第一次git提交”)
git push -u origin master (注:此操作目的是把本地仓库push到github上面,此步骤需要你输入帐号和密码,登录你的github的账户)
(4)这里特别注意,我这里报了错,一脸懵逼,网上找了好久,没有详细的解释。原来是Github 禁用了TLS v1.0 and v1.1,必须更新Windows的git凭证管理器,才行。如果第三步没有出现如下图所示问题,则忽略该步骤,直接去github上看是否上传成功。
git凭证管理器地址:https://github.com/Microsoft/Git-Credential-Manager-for-Windows/releases/tag/v1.14.0 (点击下载更新即可)。
更新完毕后,再次进入命令框输入:git push -u origin master,成功。
返回到github查看,项目上传成功!
二、第二种方法:
1、命令:mkdir manager 创建一个文件夹,当然鼠标右键也行。
2、创建完成后,进入该文件夹。命令:cd manager。
3、命令:git init。初始化文件夹。(把这个文件夹变成Git可管理的仓库)
这时你会发现manager里面多了个.git文件夹,它是Git用来跟踪和管理版本库的。如果没有看到 .git 文件夹,那么你就需要进入 manager文件夹:点击查看、把隐藏的项目勾上。(因为它默认是隐藏文件)。
4、这时候你就可以把你的项目粘贴到这个本地Git仓库里面(粘贴后你可以通过git status来查看它当前的状态),然后通过git add把项目添加到仓库(或git add .把该目录下的所有文件添加到仓库,注意点是用空格隔开的)。在这个过程中你其实可以一直使用git status来查看你当前的状态。
(1)把本地项目复制到manager文件夹,然后查看它当前的状态。
命令: git status 。
(2)上面虽然显示了你的项目,但你还没有把它提交到 github 上面去。
命令: git add . (注意有个点,add和点之间有空格)
(3)再命令 :git status 。查看一下状态。
(4)用命令:git commit -m "我的第二次提交代码"。把项目提交到仓库。( -m后面引号里面是本次提交的注释内容,这个可以不写,但最好写上,我之前用第一种方法,注释内容是:第一次提交。我现在用第二种方法,所以注释内容为:第二次提交。以便区分)。
5、本地Git仓库这边的工作做完了,下面就到了连接Github远程仓库。(由于本地Git仓库和Github仓库之间的传输是通过SSH加密的,所以连接时需要设置一下)。
(1)创建SSH KEY。先看一下你C盘用户目录下有没有 .ssh 目录,有的话看下里面有没有 id_rsa 和 id_rsa.pub 这两个文件,有就跳到下一步,没有就通过下面命令创建。
命令: ssh-keygen -t rsa -C "注释内容,一般为邮件地址"。然后一路回车。这时你就会在用户下的.ssh目录里找到id_rsa和id_rsa.pub这两个文件 。(我使用第一种方法的时候已经生成了,所以这步我忽略,你们没有的话,就需要命令一下)。
(2)登录Github,找到右上角的图标,打开点进里面的 Settings,再选中里面的 SSH and GPG KEYS,点击右上角的 New SSH key,然后Title里面可以随意填写,再把刚才 id_rsa.pub 里面的内容复制到Title下面的 Key内容框 里面,最后点击 Add SSH key,这样就完成了SSH Key的加密。具体步骤也可看下图:
6、接下来,就是创建 Github 仓库了,我在第一种方法里面已经介绍了怎么创建仓库,所以这里我不重复早轮子,上去看。
7、在Github上创建好Git仓库之后我们就可以和本地仓库进行关联了,根据创建好的Git仓库页面的提示,可以在本地TEST仓库的命令行输入:
命令: git remote add origin https://github.com/ycs0403/ycs_erp.git 。(注意:https://github.com/ycs0403/ycs_erp.git是你的项目路径)。
8、关联好之后我们就可以把本地库的所有内容推送到远程Github仓库上了。
命令:git push -u origin master 。
(1)由于你新建的远程仓库是空的,所以要加上-u这个参数,等远程仓库里面有了内容之后,下次再从本地库上传内容的时候只需下面这样就可以了:
命令:git push origin master 。
(2)这里需要注意一下:我使用第一种方法的时候,代码已经提交了一次,所以Github仓库不是空的,在执行上面那步时会报错。
或者是:创建远程仓库的时候,如果你勾选了Initialize this repository with a README(就是创建仓库的时候自动给你创建一个README文件),那么到了第八步你将本地仓库内容推送到远程仓库的时候就会报一个 error: failed to push some refs to 'https://github.com/ycs0403/ycs_erp.git' 的错。下面是解决方法:
可以通过以下命令先将内容合并以下:
命令:git pull --rebase origin master 。
这时你再 命令:git push -u origin master 就能成功了。
9、如果第八步,第一个小问题(1),没报错。那么,这时候你再重新刷新你的Github页面进入刚才新建的那个仓库里面就会发现项目已经成功上传了。至此就完成了将本地项目上传到Github的整个过程。上传项目的过程可能需要等一段时间,完成之后是这样的:
再去浏览器刷新一下GitHub,出来了。
总结:其实只需要下面几步就能把本地项目上传到Github
1、在本地创建一个版本库(即文件夹),通过git init把它变成Git仓库;
2、把项目复制到这个文件夹里面,再通过git add .把项目添加到仓库;
3、再通过git commit -m “注释内容”把项目提交到仓库;
4、在Github上设置好SSH密钥后,新建一个远程仓库,通过git remote add origin https://github.com/ycs0403/ycs_erp.git 将本地仓库和远程仓库进行关联;
5、最后通过git push -u origin master 把本地仓库的项目推送到远程仓库(也就是Github)上;(若新建远程仓库的时候自动创建了README文件会报错,解决办法看上面)。
GIT从Github上拉取项目到本地
一、首先在桌面创建一个文件夹,命令:mkdir manager 。鼠标右键创建也行。
二、进入这个文件夹,命令: cd manager 。
三、初始化这个文件夹,命令: git init 。此时文件夹会多出一个目录文件
四、添加远程仓库,命令: git remote add origin https://github.com/ycs0403/ycs_erp.git 。(https://github.com/ycs0403/ycs_erp.git是你的项目地址)。
五、查看目录下的所有项目,选择你要下载的项目。命令: git remote -v 。
六、下载代码到本地,命令: git clone 。(时间可能有点久,稍微做等待)。
Eclipse开发工具集成GIT上传代码到Github
一、下载插件,首先打开Eclipse,然后点击Help > Install New Software > Add。,然后弹出一个框。(如下图)
Name:EGit
Location: http://download.eclipse.org/egit/updates
勾选插件,然后一路 next ,最后重启Eclipse。
二、建立git的本地仓库,点击项目,有两种方法。首先来看一下我的整个结构。
1、第一种方法:右键选择 Team --> Share Project 。
2、第二种方法:右键选择 Team --> Share Project 。
三、创建本地仓库后,把项目提交到本地仓库。如图:项目上会有一个 “?” 号,说明还没提交到本地仓库。
1、首先,点击项目--> Team --> Commit。
2、如图
四、提交远程仓库。这下才是真正意义上的提交到Github上。(注意:只有先提交到本地仓库,才可以进行接下来的提交远程仓库)
1、首先
2、填写信息
3、填写信息
4、成功,累死我了。
Eclipse开发工具集成GIT拉取代码到本地
1、点击项目空白处或者 File --> import -->Git -->Projects from Git
2、选择
3、填写信息
4、选择你把拉取下来的项目放到哪里
5、然后一直 next,直到完成 。OK了,报错不是哥的问题,更不是你的问题,那只能怪Git和Eclipse罗。哥自己项目拉下来还跑不起来吗,不然就是碰了鬼勒,跳起来就是砸电脑,哈哈。
Git命令大全
(查看、添加、提交、删除、找回,重置修改文件)
git help <command> # 显示command的help
git show # 显示某次提交的内容 git show $id
git co -- <file> # 抛弃工作区修改
git co . # 抛弃工作区修改
git add <file> # 将工作文件修改提交到本地暂存区
git add . # 将所有修改过的工作文件提交暂存区
git rm <file> # 从版本库中删除文件
git rm <file> --cached # 从版本库中删除文件,但不删除文件
git reset <file> # 从暂存区恢复到工作文件
git reset -- . # 从暂存区恢复到工作文件
git reset --hard # 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改
git ci <file> git ci . git ci -a # 将git add, git rm和git ci等操作都合并在一起做
git ci -am "some comments"
git ci --amend # 修改最后一次提交记录
git revert <$id> # 恢复某次提交的状态,恢复动作本身也创建次提交对象
git revert HEAD # 恢复最后一次提交的状态
查看文件diff
git help <command> # 显示command的help
git show # 显示某次提交的内容 git show $id
git co -- <file> # 抛弃工作区修改
git co . # 抛弃工作区修改
git add <file> # 将工作文件修改提交到本地暂存区
git add . # 将所有修改过的工作文件提交暂存区
git rm <file> # 从版本库中删除文件
git rm <file> --cached # 从版本库中删除文件,但不删除文件
git reset <file> # 从暂存区恢复到工作文件
git reset -- . # 从暂存区恢复到工作文件
git reset --hard # 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改
git ci <file> git ci . git ci -a # 将git add, git rm和git ci等操作都合并在一起做
git ci -am "some comments"
git ci --amend # 修改最后一次提交记录
git revert <$id> # 恢复某次提交的状态,恢复动作本身也创建次提交对象
git revert HEAD # 恢复最后一次提交的状态
查看提交记录
git log git log <file> # 查看该文件每次提交记录
git log -p <file> # 查看每次详细修改内容的diff
git log -p -2 # 查看最近两次详细修改内容的diff
git log --stat #查看提交统计信息
tig
Mac上可以使用tig代替diff和log,brew install tig
Git 本地分支管理
查看、切换、创建和删除分支
git br -r # 查看远程分支
git br <new_branch> # 创建新的分支
git br -v # 查看各个分支最后提交信息
git br --merged # 查看已经被合并到当前分支的分支
git br --no-merged # 查看尚未被合并到当前分支的分支
git co <branch> # 切换到某个分支
git co -b <new_branch> # 创建新的分支,并且切换过去
git co -b <new_branch> <branch> # 基于branch创建新的new_branch
git co $id # 把某次历史提交记录checkout出来,但无分支信息,切换到其他分支会自动删除
git co $id -b <new_branch> # 把某次历史提交记录checkout出来,创建成一个分支
git br -d <branch> # 删除某个分支
git br -D <branch> # 强制删除某个分支 (未被合并的分支被删除的时候需要强制)
分支合并和reba
git merge <branch> # 将branch分支合并到当前分支
git merge origin/master --no-ff # 不要Fast-Foward合并,这样可以生成merge提交
git rebase master <branch> # 将master rebase到branch,相当于: git co <branch> && git rebase master && git co master && git merge <branch>
Git补丁管理(方便在多台机器上开发同步时用)
git merge <branch> # 将branch分支合并到当前分支
git merge origin/master --no-ff # 不要Fast-Foward合并,这样可以生成merge提交
git rebase master <branch> # 将master rebase到branch,相当于: git co <branch> && git rebase master && git co master && git merge <branch>
Git暂存管
git stash # 暂存
git stash list # 列所有stash
git stash apply # 恢复暂存的内容
git stash drop # 删除暂存区
Git远程分支管理
git pull # 抓取远程仓库所有分支更新并合并到本地
git pull --no-ff # 抓取远程仓库所有分支更新并合并到本地,不要快进合并
git fetch origin # 抓取远程仓库更新
git merge origin/master # 将远程主分支合并到本地当前分支
git co --track origin/branch # 跟踪某个远程分支创建相应的本地分支
git co -b <local_branch> origin/<remote_branch> # 基于远程分支创建本地分支,功能同上
git push # push所有分支
git push origin master # 将本地主分支推到远程主分支
git push -u origin master # 将本地主分支推到远程(如无远程主分支则创建,用于初始化远程仓库)
git push origin <local_branch> # 创建远程分支, origin是远程仓库名
git push origin <local_branch>:<remote_branch> # 创建远程分支
git push origin :<remote_branch> #先删除本地分支(git br -d <branch>),然后再push删除远程分支
Git远程仓库管
git remote -v # 查看远程服务器地址和仓库名称
git remote show origin # 查看远程服务器仓库状态
git remote add origin git@ github:robbin/robbin_site.git # 添加远程仓库地址
git remote set-url origin git@ github.com:robbin/robbin_site.git # 设置远程仓库地址(用于修改远程仓库地址)
git remote rm <repository> # 删除远程仓库
创建远程仓库
git clone --bare robbin_site robbin_site.git # 用带版本的项目创建纯版本仓库
scp -r my_project.git git@ git.csdn.net:~ # 将纯仓库上传到服务器上
mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在服务器创建纯仓库
git remote add origin git@ github.com:robbin/robbin_site.git # 设置远程仓库地址
git push -u origin master # 客户端首次提交
git push -u origin develop # 首次将本地develop分支提交到远程develop分支,并且track
git remote set-head origin master # 设置远程仓库的HEAD指向master分支
也可以命令设置跟踪远程库和本地库
git branch --set-upstream master origin/master
git branch --set-upstream develop origin/develop
总结:文章很长,可能比较乏味,本文有借鉴,网上东拼西凑,不过我都经过实践的,需要最初自己的理解,长久坚持。我最初写博客,也只是想对自己的理解做一个记录,如果本文有不合格的地方,可以指正,三人行,必有我师!
qq:2931445528
-----------------------------------------------------------END----------------------------------------------------------------