github 远程仓库操作
工作中需要在github上保存项目,一个仓库中有多个分支,进行一些实验,方便后面操作。
参考链接
http://rogerdudler.github.io/git-guide/index.zh.html
http://www.ruanyifeng.com/blog/2014/06/git_remote.html
1、创建远程仓库
我在github账户上创建了一个git_test的仓库。
创建完成仓库之后,github会显示一些git的基本操作。
... or create a new repository on the command line
echo "# git_test" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:TonySudo/git_test.git
git push -u origin master
... or push an existing repository from the command line
git remote add origin git@github.com:TonySudo/git_test.git
git push -u origin master
仓库建好了,如何上传文件呢?我知道的有两种方法:
将github上的仓库clone到本地,添加文件之后再push。
在本地创建仓库,连接到远程的仓库,然后再push文件。
下面分别介绍。
2、克隆远程仓库到本地
# clone的时候,远程主机自动被命名为origin。
$ git clone git@github.com:TonySudo/git_test.git
Cloning into 'git_test'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.
# 克隆某个分支, 使用-b选项,进行分支的选择,branch是远端仓库分支的名字。
$ git clone -b branch https://github.com/TonySudo/git_test.git
Cloning into 'git_test'...
Unpacking objects: 100% (6/6), done.packing objects: 16% (1/6)
remote: Compressing objects: 100% (2/2), done.
remote: Total 6 (delta 0), reused 6 (delta 0), pack-reused 0
Checking connectivity... done.
# 上传文件
$ cd git_test/
# 创建文件
$ touch master
$ git add master
$ git commit -m "init push"
[master (root-commit) 436b48f] init push
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 master
# 上传到github
$ git push
Counting objects: 3, done.
Writing objects: 100% (3/3), 203 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@github.com:TonySudo/git_test.git
* [new branch] master -> master
上传完成,在github的仓库中就会看到一个master文件。
3、本地仓库连接远程仓库
# 在本地创建一个目录用于当做仓库。
$ mkdir git
$ cd git
# 初始化本地仓库
$ git init
Initialized empty Git repository in C:/Users/Tony/Desktop/git/git/.git/
# 连接远程仓库
$ git remote add origin git@github.com:TonySudo/git_test.git
# origin 是定义的远程主机的名字, origin 是远程仓库的网址
如果git remote连接时出现错误
fatal: remote origin already exists.
解决方法参考:
http://blog.csdn.net/dengjianqiang2011/article/details/9260435
$ git remote rm origin
再次运行之前的命令就可以成功。
# 查看远程仓库的名字:
$ git remote -v
origin git@github.com:TonySudo/git_exe.git (fetch)
origin git@github.com:TonySudo/git_exe.git (push)
# 上传文件
$ touch master
$ git add master
$ git commit -m "init push"
[master (root-commit) f88dd2b] init push
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 master
$ git push -u origin master
如果出现错误。
fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin master
$ git push --set-upstream origin master
4. 提取服务器上的更新
# 从服务器上下载更新,这只是下载下来,没有对源码进行更改。
# 默认取回所有的更新。
$ git fetch origin
# 取回某一个分支的更新,branch1是分支名,可以是master或者其他的。
$ git fetch origin branch1
# 将fetch下来的跟新和本地的分支进行合并。merge之后,本地的源码才会改变。
$ git merge
# git pull相当于执行了git fetch和git merge
# 将远程的branch1分支的内容下载到本地的master分支。
# 也可以将branch1更改为其他的,例如master.
$ git pull origin branch1:master
5、文件上传
# 将本地的分支branch上的更新上传到远端的master分支。
$ git push origin branch:master
Counting objects: 3, done.
Writing objects: 100% (3/3), 200 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@github.com:TonySudo/git_test.git
* [new branch] master -> master
有时候会出错,说明本地上的文件跟服务器上的不同步
$ git push origin branch:master
To git@github.com:TonySudo/git_test.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:TonySudo/git_test.git'
hint: Updates were rejected because the tip of your current branch is behi
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
解决方法,先将服务器上的更新先下载到本地,这样就和服务器上的同步了,再进行提交即可。
将本地的branch分支的内容传送大远端仓库的branch分支
$ git push origin branch:branch
Counting objects: 2, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 255 bytes | 0 bytes/s, done.
Total 2 (delta 0), reused 0 (delta 0)
To git@github.com:TonySudo/git_test.git
* [new branch] branch -> branch
6. 分支
创建一个名为branch1的分支
git branch branch1
切换到分支branch1
git checkout branch1
将本地master分支的文件上传到远端仓库的名为branch1的分支上。 如果远端这个分支不存在,就会创建这个分支。
git push origin master:branch1
Tony Liu
2017-2-8, Shenzhen
github 远程仓库操作的更多相关文章
- Git操作_从github远程仓库克隆到本地仓库, 本地代码提交
实现目的: 从github远程仓库克隆到本地仓库:本地代码提交到远程仓库. 一.从github远程仓库克隆到本地仓库: 命令行切换到指定的仓库想存放的目录,执行如下命令:git clone 远程仓库 ...
- iOS开发——源代码管理——git(分布式版本控制和集中式版本控制对比,git和SVN对比,git常用指令,搭建GitHub远程仓库,搭建oschina远程仓库 )
一.git简介 什么是git? git是一款开源的分布式版本控制工具 在世界上所有的分布式版本控制工具中,git是最快.最简单.最流行的 git的起源 作者是Linux之父:Linus Bened ...
- Git本地仓库push至GitHub远程仓库每次输入账户密码问题解决(亲测可行)
在使用git push命令将本地仓库内容推送至GitHub远程仓库的每一次git都要让我们输入GitHub的用户名和密码.这着实让我们心烦.我们会有疑问,我明明设置了公钥呀!怎么还需要输入账户和密码? ...
- git笔记之eclipse使用github远程仓库进行版本号管理
原文地址:http://dtbuluo.com/90.html 这里记录一下eclipse开发工具中git的使用说明. 环境:centOS.eclipse-jee-kepler-SR2-linux-g ...
- GitHub 远程仓库 de 第一次配置
GitHub远程仓库, Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上.首先找一台电脑充当服务器的角色, 每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上 ...
- Github首次使用教程(本地新建项目并同步到Github远程仓库)
网上关于Github的教程很多且有点乱,自己亲自躺坑实践,现分享出来给将要入坑的小伙伴. 主要步骤: 创建Github帐号,登录,新建仓库(远程仓库) 下载安装Git,git bash配置及简单使用( ...
- 创建Github远程仓库
如何创建github远程仓库 首先, 你有先到github网站注册账号https://github.com 然后创建一个项目, Create a new repository 之后在在Reposito ...
- github远程仓库初始化配置
github远程仓库的提交一般是通过shell进行,windows下有Git Bash工具(https://git-for-windows.github.io/) 由于本地Git仓库和GitHub仓库 ...
- 使用git将本地仓库同步到github远程仓库
一.下载安装git客户端windows版本 二.建立本地仓库文件夹 三.在本地仓库里右键点击Git Bash Here 四.初始化本地仓库 [git init] 执行之后仓库中会创建隐藏的文件夹.gi ...
随机推荐
- TDR,阻抗匹配,反射,源端匹配,终端匹配
什么是阻抗 阻抗分三种,电阻.电容.电感,三者阻抗表达式如下: 符号 单位 表达式 备注 电阻 R 欧姆 Ω 电压电流相位相同 电容 C 法拉 F 电压相位落后电流90度 电感 L 亨利 H 电压相位 ...
- oracle 11G 导出空表失败的解决方法
一.问题原因: 11G中有个新特性,当表无数据时,不分配segment,以节省空间 1.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除 ...
- 易懂的modelsim学习笔记
1. 建一个总文件夹,如cnt2. 为源代码,测试台文件,仿真各建一文件夹.如src,tb,sim3. 编写源代码,testbench.如cnt.v,tb_cnt.v文件,同时文件名里的模块名与文件名 ...
- Android系统框架介绍
src目录:主要是完成java代码的编写 assets目录:资源目录 res目录:存在图片,布局文件和字符串.菜单等文件 bin目录:输出文件夹,如生成的APK文件 project,propertie ...
- Very very important SQL Server article
https://support.microsoft.com/en-us/kb/2964518
- 前端开发中Cookie那些事儿
前段时间做了项目,在前端实现中频繁的操作cookie,记录几点供大家参考! cookie操作在前端开发过程中经常遇到,当然如果只是用来存储一些简单用户数据,还是比较简单的,我们要做的可能只是设置coo ...
- jquery,checkbox无法用attr()二次勾选
今晨,漂亮的测试妹妹提了个奇怪的bug,说我一功能checkbox时隐时现,比如第一次打开有勾选,第n次打开可能就不选了. 想到与美女有亲密接触机会,马上鸡动起来. 经过偶层层抽次剥茧(da da j ...
- Oracle“不等于号”与Null的情况
今天突然才发现,Oracle中的“不等于操作符”是忽略Null的. 比如,查询comm不等于的300的记录,我会理所当然地使用where comm != 300 预想会返回包含Null的不等于300的 ...
- cancas绘制折线图
知识点回顾: 知识点1: measureText() 方法返回包含一个对象,该对象包含以像素计的指定字体宽度. 提示:如果您需要在文本向画布输出之前,就了解文本的宽度,那么请使用该方法. JavaSc ...
- C/C++/C#/Python日志框架
俗话说,打得一手好log才是一个优秀的程序员. **打log的目的是为了迅速排错或在有争议时拿出证据证明自己.基于这个目的,log不在多,只要抓住一切对自己有利的信息,就可以了.** 日志框架列表 C ...