概述
(1). 去GitHub官网注册GitHub账号。
(2). 安装Git。(附上Git-2.11.0安装程序)
(3). 配置Git:安装完成后,运行Git Bash程序,输入以下命令来生成SSH key:
ssh-keygen -t rsa -C "email@example.com"
其中email@example.com代表你的邮箱地址。一路点击回车,然后会在你的~/目录下生成.ssh文件夹,其中~表示当前用户的家目录,例如:C:Users[你当前登录系统的用户名]。现在访问GitHub官网,登录,点击右上角头像旁边的三角形,依次点击Settings -> SSH and GPG keys -> New SSH key,Title随意写,然后将本地.ssh文件夹下的id_rsa.pub中的内容复制到Key中,然后点击Add SSH key。为了验证是否关联成功,在Git Bash中输入:
ssh -T git@github.com
如果是第一次关联会提示是否continue,输入yes。如果提示如下信息,则证明关联成功:
(4). 因为Git是分布式版本控制系统,所以每台机器都必须自报家门,现在需要指定用户名和邮箱地址,在Git Bash中输入如下命令:
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
其中Your Name对应你的用户名,email@example.com对应你的邮箱地址。其中git config命令的–global参数,使用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置。
(5). 创建远程仓库:访问GitHub官网,点击New repository,定义你的Repository name,即远程仓库名称,自定义Description,勾选public,为了方便测试,勾选Initialize this repository with a README,然后点击Create repository,远程仓库便建好了:
(6). 创建本地仓库:新建一个文件夹(在这里我在D盘下新建一个GitTest文件夹),在Git Bash中进入这个文件夹,或者直接在该文件夹下右键选择Git Bash Here,然后输入命令:
git init
会有如下提示:
并且在你新建的文件夹下会生成一个.git文件夹:
严格地讲,文件夹GitTest叫作工作区,文件夹.git叫作版本库(不算工作区),它们的关系会在后面说明。
(7). 关联本地仓库和远程仓库。输入命令:
git remote add origin https://github.com/xiangwanpeng/TestGitHub.git
其中“https://github.com/xiangwanpeng/TestGitHub.git”是你的远程仓库地址,可以在GitHub网站中进入你的远程仓库,点击Clone or download,复制链接得到。这样本地仓库和远程仓库就关联起来了。
(8). 推送本地仓库的文件到远程仓库:现在我在GitTest文件夹下新建一个文本文档test.txt,文档内容随意:
在Git Bash中执行命令:
git add test.txt
git commit -m'first commit'
git add test.txt命令指定将test.txt文件从工作区添加到暂存区(可以使用git add -A命令将所有内容添加到暂存区),git commit -m’first commit’指定将暂存区的内容提交到当前分支(现在默认是master分支),其中单引号内的内容是你这次提交的说明,可以自定义。
现在,如果要通过命令git push -u origin master来将本地提交的内容push到远程仓库,会出现如下错误:
这是因为我们在远程仓库中建立了README.md文件,而本地没有,需要先将远程仓库中的内容拉下来。有两种方法,一种是pull命令,另一种是使用fetch+merge命令,事实上pull=fetch+merge,现在我们使用fetch+merge:
先执行fetch命令,从远程仓库的master分支上拉取内容:
git fetch origin master
再执行merge命令将从远程仓库master分支上的拉取的内容合并到当前分支(当前默认的也是master分支)上:(Git 2.9及以上的版本中,merge和pull的命令将不允许两个不相关历史的分支进行合并,除非加上–allow-unrelated-histories,否则会报fatal: refusing to merge unrelated histories)
git merge origin/master --allow-unrelated-histories
按回车后,会进入文本编辑模式,先输入冒号,然后输入wq按回车即可退出:
现在打开工作区目录GitTest,可以发现远程仓库的README.md文件被拉取下来了:
现在再执行push命令:(关联仓库后,第一次push要加上-u参数,这样Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令,即执行命令git push origin master就可以了)
git push -u origin master
执行成功:
而且在远程仓库可以看到,test.txt文件被push上去了:
到这里,就介绍了如何从本地将文件推送到远程(一般是add + commit + push),以及从远程将文件拉取到本地(一般是fetch + merge,或者pull)。
补充说明:
工作区,版本库和暂存区:
工作区(Working Directory):就是在电脑里能看到的目录,比如我的GitTest文件夹就是一个工作区:(其实.git是隐藏目录,现在我设置不显示隐藏目录就看不见了)
版本库(Repository):工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库,设置显示隐藏文件即可看见:
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD:
在我们执行add命令时,是将文件从工作区添加到暂存区,当执行commit命令时,是将暂存区中的所有文件提交到当前分支。可以简单地理解为:需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。而且,一旦提交后,如果你又没有对工作区做任何修改,那么工作区就是“干净”的。
最后
以上就是有魅力钢笔为你收集整理的使用Git Bash上传项目到GitHub的全部内容,希望文章能够帮你解决使用Git Bash上传项目到GitHub所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复