本地仓库(local repository)

创建一个本地仓库的流程:

  1. 为本地仓库创建一个目录
  2. 在目录中执行 git init

对本地仓库所做的改变(例如添加、删除文件等)首先加入到本地仓库的 Index(stage)中,之后通过 commit 命令将这些改变提交到本地仓库。

创建某个仓库的拷贝

  1. git clone /path/to/repository

这里的 /path/to/repository 可以是一个本地路径,也可以是一个 URL。范例:

  1. git clone https://github.com/name5566/merry.git

针对本地仓库的常见操作

  1. 文件添加操作
    1. 将文件加入到 Index 中去(文件被修改也需要加入到 Index 后才能提交)
    2. git add filename
    3. 将所有新增的文件加入到 Index 中去
    4. git add *
  2. 文件(或目录)的移动(或重命名)操作
    1. git mv file1 file2
  3. 文件的删除操作
    1. 将文件从当前目录和 Index 中移除
    2. git rm filename
  4. 提交改变到本地仓库
    1. 提交改变到本地仓库
    2. git commit -m "message"
    3. 根据当前文件被修改和删除的情况更新 Index 并提交这些改变到本地仓库(未告知 git 的新文件除外)
    4. git commit -a -m "message"
  5. 显示当前尚未提交的改变
    1. git status

将本地仓库的改变推送到远程仓库

我们使用 commit 命令将改变提交到本地仓库,之后可以将这些改变推送到远程仓库中:

  1. 这里 master 表示分支,你可以根据实际需要推送的分支来进行修改
  2. git push origin master

分支

  1. 分支间相互切换
    1. git checkout master
    2. git checkout feature_x
  2. 创建新分支并切换过去
    1. git checkout -b feature_x
  3. 删除特定分支
    1. git branch -d feature_x
  4. 删除远程子分支

      1. git push origin -d feature_x

  5. 合并分支
    1. git merge feature_x

分支创建之后,可以推送到远程仓库:

  1. git push origin feature_x

更新本地仓库

  1. git pull

日志

  1. 显示日志
  2. git log
  3. 显示 bob 的日志
  4. git log --author=bob

替换本地修改

有时候,我们希望还原所做的修改:

  1. 放弃当前对 filename 文件的修改,获取本地仓库中最后一次提交的结果
  2. git checkout -- filename
  3. 放弃本地所有改变和提交,直接从远程仓库获取
  4. git fetch origin
  5. git reset --hard origin/master

从github上clone子分支

正常情况下,我们在github上看到一个clone地址,git clone xxxxxxx.git后,默认clone进入的是master分支,如果想切换到某一个子分支,可以使用

git checkout -b child_repos origin/child_repos

其中,child_repos指的是目标子分支名,

这时,使用git branch可以看到自己已经在子分支上,正常

git pull origin child_repos

git push origin child_repos

即可。

Git 怎样保证fork出来的project和原project(上游项目)同步更新

步骤:

1.  在 Fork 的代码库中添加上游代码库的 remote 源,该操作只需操作一次即可。

如: 其中# upstream 表示上游代码库名, 可以任意。

git remote add upstream https://github.scm.corp.ebay.com/montage/frontend-ui-workspace

2. 将本地的修改提交 commit

3. 在每次 Pull Request 前做如下操作,即可实现和上游版本库的同步。

3.1 : git remote update upstream

3.2 : git rebase upstream/{branch name}

需要注意的是在操作3.2之前,一定要将checkout到{branch name}所指定的branch,

如: git checkout develop

4. Push 代码到 Github

git push

如果项目中有引用其他项目作为子项目 clone时使用

`git clone` 的时候加上 `--recursive`

可以clone整个项目,包含子项目

Github常用命令【转】的更多相关文章

  1. Github 常用命令

    小记一些Github常用命令 : 在一个项目中... 假如要修补问题追踪系统上的 #53 问题.顺带说明下,Git 并不同任何特定的问题追踪系统打交道.这里为了说明要解决的问题,把新建的分支取名为 i ...

  2. Linux 使用 github 常用命令

    Linux 使用 github  常用命令 今天整理一下常用的 github 命令,自己只是一个编程小白,有些地方可能做的不是很好,仅仅用作自己的学习使用. 创建一个文件夹用于存放github仓库 m ...

  3. github常用命令

    全局配置 git config --global user.name "lewiscutey"git config --global user.email "lewisc ...

  4. git(github)常用命令

    安装git sudo apt-get install git 显示git版本 git version 显示system属性,对应为/etc/gitconfig文件的内容 git config --sy ...

  5. GitHub常用命令及使用

    GitHub使用介绍 摘要: 常用命令: git init 新建一个空的仓库git status 查看状态git add . 添加文件git commit -m '注释' 提交添加的文件并备注说明gi ...

  6. GIt/Github常用命令

    1)git init:初始化本地仓库 2)创建文件:touch read.txt 3)当操作本地的文件时,使用常用的命令,如(mv,ls..)就可以操作,当操作暂存区的文件时需要在命令前家git,并且 ...

  7. GitHub 常用命令使用介绍(新同学入门)

    经济在不断发展,社会在不断进步,以往的互联网在现在看来都可以称为传统互联网了,因为技术不断的在突破和革新. 本文主要介绍一下版本管理工具,我猜测很多人还是用SVN.CVS或者Resion,但是,今天我 ...

  8. github常用命令汇总

    创立版本库 mkdir Baiducd Baidugit init SSHssh-keygen -t -rsa -C "TaylorApril947939@gmail"(在gith ...

  9. Git与github常用命令

    Git项目与github建立联系 首先,需要在github上建立一个repository mkdir github-project cd github-project git init 此时githu ...

随机推荐

  1. Empire安装和试用

    Empire2.0,powershell后渗透利器的安装和试用 https://www.restkhz.com/2017/05/empire-test/ 使用Empire“探索”Windows个人电脑 ...

  2. Spring和junit测试之配置文件路径

    本人在测试一个方法时需要加载XML配置文件,spring提供了相应的方法,就小小研究了下,在此记录下具体的过程,方便初学者和自己日后回顾. Spring容器最基本的接口就是BeanFactory. B ...

  3. Specified VM install not found: type Standard VM, name Java

    Specified VM install not found: type Standard VM, name Java 下了一个新项目,使用SpringSource中执行ant脚本时,莫名提示以下错误 ...

  4. Elasticsearch 版本控制

    悲观并发控制(Pessimistic concurrency control) 这在关系型数据库中被广泛的使用,假设冲突的更改经常发生,为了解决冲突我们把访问区块化.典型的例子是在读一行数据前锁定这行 ...

  5. Lua 迭代器与closure

    所谓“迭代器”就是一种可以遍历(iterate over)一种极和中所有元素的机制.在Lua中,通常将迭代其表示为函数.每调用一次函数,即返回集合中的“下一个”元素.每个迭代器都需要在每次成功调用之间 ...

  6. sql预计简单分页

    在显示记录条目时往往要用到分页,一种常用的办法是利用各种数据库自带的定位接口对原始查询语句进行改写,从而只取出特定范围的某些记录.不同的数据库,查询定位接口是不一样的,下面做一汇总: 数据库 分页查询 ...

  7. No.1 PyQt学习

    由于项目的原因,要学PyQt了.以下是第一天的学习成果 # -*- coding: utf-8 -*- import sys from PyQt4 import QtGui, QtCore class ...

  8. 树莓派3安装opencv2程序无法运行

    在raspberry pi3 上安装opencv3已测试,没有问题,而opencv2报错如下: Xlib: extension "RANDR" missing on display ...

  9. WP8.1学习系列(第二十一章)——本地应用数据

    了解如何存储和检索本地应用数据存储中的设置和文件. 路线图: 本主题与其他主题有何关联?请参阅: 使用 C# 或 Visual Basic 的 Windows 运行时应用的路线图 使用 C++ 的 W ...

  10. PHP魔术变量和魔术方法

    基础知识:魔术变量和魔术方法 魔术变量:最初PHP魔术变量的出现主要是为了方便开发者调试PHP的代码;当然也可以利用这个实现特殊需求.在写法上魔术变量前后都有两个下划线. 如:_LINE_:返回文件中 ...