Git与github互联,上传完整项目到github远程仓库

本教程是在Linux(Ubuntu16.04)下进行的

1.注册账户以及创建仓库

注册github账号, github官网地址:https://github.com/   根据主页的Read the guide(阅读指南)就可以构建自己的第一个repository(仓库) .

2.Git 安装

3.配置Git

1)首先在本地创建ssh key,后面的your_email@youremail.com改为你在github上注册的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。

~$ ssh-keygen -t rsa -C "your_email@youremail.com"

2)成功的话会在~/下生成.ssh文件夹,通过 gedit 打开id_rsa.pub,复制里面的key(除最后的邮箱名其余全部复制)

~$ gedit ~/.ssh/id_rsa.pub

3) 回到github上,进入 Account Settings(账户配置),左边选择SSH and GPG keys,然后New SSH key, title随便填,这里我用的是Ubuntu_af,   粘贴步骤二中的key,这样密银就做好了.

4)为了验证是否成功,在终端中输入:

~$ ssh -T git@github.com

如果是第一次的会提示是否continue,输入yes(这个地方必须输入"yes"三个字母,不可以直接enter)就会看到:You've successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github。

5)接下来就是把本地仓库传到github上去,在此之前还需要设置username和email,因为github每次commit都会记录他们。

$ git config --global user.name "your name"
$ git config --global user.email "your_email@youremail.com"

其中的your name为你的github用户名,your_email@youremail.com为你的github注册邮箱,

这样Git与github之间就全部配置完成.

4.创建本地仓库

1)首先新建或使用已经存在的目录作为仓库,

~$ mkdir git_test

 2)使用 git init 命令来初始化一个 Git 仓库,

~$ git init

Git 的很多命令都需要在 Git 的仓库中运行,所以 git init 是使用 Git 的第一个命令。在执行完成 git init 命令后,Git 仓库会生成一个 .git 目录,该目录包含了资源的所有元数据,其他的项目目录保持不变。

3)如果当前目录下有几个文件想要纳入版本控制,需要先用 git add 命令告诉 Git 开始对这些文件进行跟踪,然后提交:

把它们添加到暂存区,使用以下第一条命令:  (file name为文件夹或文件,也可以使用 * 仓库内文件全部添加到暂存区),

第二条命令将暂存区文件提交到 HEAD,但是还没到你的远端仓库.

~$ git add <file name>
~$ git commit -m "代码提交信息"

此期间可以使用

~$ git status

查看项目当前状态

要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除,然后提交。可以用以下命令完成此项工作

~$ git rm <file>

如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f

~$ git rm -f <file>

如果把文件从暂存区域移除,但仍然希望保留在当前工作目录中,换句话说,仅是从跟踪清单中删除,使用 --cached 选项即可

~$ git rm --cached <file>

5.上传到github远程仓库

首先利用步骤一中所学构建远程仓库

第一次创建完成之后显示信息如下

以上信息告诉我们可以从这个仓库克隆出新的仓库,也可以把本地仓库的内容推送到GitHub仓库。

现在,我们根据 GitHub 的提示,在本地的仓库下运行命令:

$ mkdir runoob-git-test                     # 创建测试目录
$ cd runoob-git-test/                       # 进入测试目录
$ echo "# 菜鸟教程 Git 测试" >> README.md     # 创建 README.md 文件并写入内容
$ ls                                        # 查看目录下的文件
README
$ git init                                  # 初始化
$ git add README.md                         # 添加文件
$ git commit -m "添加 README.md 文件"        # 提交并备注信息
[master (root-commit) 0205aab] 添加 README.md 文件
 1 file changed, 1 insertion(+)
 create mode 100644 README.md

# 提交到 Github
$ git remote add origin git@github.com:afzhang/runoob-git-test.git     #afzhang改为自己的github用户名
$ git push -u origin master

origin 为你提交到远程仓库的别名,其中的 master 可以换成你想要推送的任何分支。

 

至此,我们自己的项目就上传到了github的远程仓库上.

                                                     哈哈哈哈哈哈哈哈...............................

 

 

下面是一些分支合并命令,等着再细究..........

分支

分支是用来将特性开发绝缘开来的。在你创建仓库的时候,master 是"默认的"分支。在其他分支上进行开发,完成后再将它们合并到主分支上。

branches

创建一个叫做"feature_x"的分支,并切换过去:
git checkout -b feature_x
切换回主分支:
git checkout master
再把新建的分支删掉:
git branch -d feature_x
除非你将分支推送到远端仓库,不然该分支就是 不为他人所见的
git push origin <branch>

更新与合并

要更新你的本地仓库至最新改动,执行:
git pull
以在你的工作目录中 获取(fetch) 并 合并(merge) 远端的改动。
要合并其他分支到你的当前分支(例如 master),执行:
git merge <branch>
在这两种情况下,git 都会尝试去自动合并改动。遗憾的是,这可能并非每次都成功,并可能出现冲突(conflicts)。 这时候就需要你修改这些文件来手动合并这些冲突(conflicts)。改完之后,你需要执行如下命令以将它们标记为合并成功:
git add <filename>
在合并改动之前,你可以使用如下命令预览差异:
git diff <source_branch> <target_branch>

标签

为软件发布创建标签是推荐的。这个概念早已存在,在 SVN 中也有。你可以执行如下命令创建一个叫做 1.0.0 的标签:
git tag 1.0.0 1b2e1d63ff
1b2e1d63ff 是你想要标记的提交 ID 的前 10 位字符。可以使用下列命令获取提交 ID:
git log
你也可以使用少一点的提交 ID 前几位,只要它的指向具有唯一性。

替换本地改动

假如你操作失误(当然,这最好永远不要发生),你可以使用如下命令替换掉本地改动:
git checkout -- <filename>
此命令会使用 HEAD 中的最新内容替换掉你的工作目录中的文件。已添加到暂存区的改动以及新文件都不会受到影响。

假如你想丢弃你在本地的所有改动与提交,可以到服务器上获取最新的版本历史,并将你本地主分支指向它:
git fetch origin
git reset --hard origin/master

实用小贴士

内建的图形化 git:
gitk
彩色的 git 输出:
git config color.ui true
显示历史记录时,每个提交的信息只显示一行:
git config format.pretty oneline
交互式添加文件到暂存区:
git add -i

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值