一种常见的版本控制工具

获取
克隆仓库

git支持以ssh或者http的方式来标识远程仓库

git clone git@github.com:username/project.git
git clone https://github.com/username/project
git clone git@github.com:username/project.git ~/projects/path # 将远程仓库克隆到本地指定目录

以上两条命令作用相同,均是将github上的仓库克隆到本地

拉取远程仓库
git pull # 拉取远程仓库的更新,并与本地修改合并
git fetch --all # 获取最新代码到本地,不进行合并操作
git reset --hard origin/master # 把HEAD指向最新的版本

在拉取更新时,若直接执行git pull操作,则会将远程更新与本地更新合并,此时本地文件将出现待提交状态,即使本地并未修改

若仅仅想拉取远程修改并覆盖更新本地的文件,需执行以上fetch及reset命令

暂存

在git中,可通过stash子命令将本地修改暂存起来,并在合适时取出来并合并。

假如项目中遇到类似这种情况:

当前本地正处于主分支上开发,功能做了一半,尚未提交修改

被告知线上稳定分支存在bug,急需修复

此时便可通过git stash命令将本地修改移至暂存区,同时本地切换至稳定分支进行修改bug,并进行提交等操作。

完成后再切换回主分支,同时通过stash pop或stash apply命令将之前暂存的修改取出来,便可继续之前的开发工作。

暂存当前修改

每次暂存都会在暂存区中产生一条暂存记录

git stash
查看暂存列表

列表中每条暂存记录会有一个编号,类似于stash@{x}这种格式

git stash list
取出暂存记录

stash pop 命令取出暂存记录,与当前分支合并,同时该记录会从暂存列表中删除

stash apply 作用与stash pop,但取出后不会将记录删除,所以可以多次执行

git stash pop stash@{x}
git stash apply stash@{x}
删除暂存记录
git stash drop stash@{0}
提交

git提交需要两步操作,首先将修改commit到本地仓库,再将本地的提交push到远程仓库,之后才可被其它人下载到。

查看本地仓库状态
git status

status子命令显示当前本地仓库的状态。未提交、未加入版本控制、已删除、版本冲突等可通过该命令查看。

将本地修改加入待提交列表
git add .  # 将所有本地修改加入版本控制
git add abc.txt # 将指定文件的修改加入版本控制
提交本地更改
git commit -m "提交备注"

在commit时仅仅将修改提交的本地仓库,其它人无法获取到,直到执行push操作,将本地仓库的提交推到远程仓库

远程仓库
查看

远程仓库可以通过remote子命令查看,-v参数可以查看远程仓库具体的指向地址。

$ git remote
origin
$ git remote -v
origin git@github.com:username/project.git (fetch)
origin git@github.com:username/project.git (push)
删除

通过remote rm 子命令删除远程仓库

$ git remote rm origin   # 移除origin远程仓库
添加

使用remote add子命令添加远程仓库,其中origin无特殊意义,是远程仓库在本地的一个助记简称。

$ git remote add origin https://github.com/pnnh/chatcpp.git
修改

使用remote rename子命令修改远程仓库在本地的助记简称。

$ git remote rename origin master # 将origin仓库重命名为master
详情

remote show子命令可以查看远程仓库的详情描述,这些信息包括:

比如查看所有处于跟踪状态中的远端分支,查看运行 git push 时缺省推送的分支是什么,哪些已同步的分支在本地存在,但在远端服务器上已被删除 ,运行 git pull 时将自动合并哪些分支等等。

$ git remote show origin
推送本地修改
git push
# 只推送本地master分支的提交到origin远程仓库,需要先设置本地分支与远程分支的跟踪关系
git push origin master

将修改commit到本地仓库时,无法被其它人下载到,版本还保留在本地。此时可通过push子命令将本地修改推送到远程仓库。

git简单介绍的更多相关文章

  1. Git简单介绍以及使用入门

    Git Git:分布式版本控制系统, 此外还有 SVN (集中式版本控制系统) 下载地址(阿里云镜像) :CNPM Binaries Mirror (npmmirror.com) Git Bash : ...

  2. git使用介绍

    Git简单介绍 参考网址: git使用简介 这个教程推荐使用:git教程 git和svn的差异 git和svn的最大差异在于git是分布式的管理方式而svn是集中式的管理方式.如果不习惯用代码管理工具 ...

  3. 猫猫学iOS 之第一次打开Xcode_git配置,git简单学习

    猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243 一:错误 当第一次打开Xcode我们进行commit操作的时候会 ...

  4. git + git flow 的简单介绍

    1.git简单实用 git:是一种分布式版本控制系统,因为其优秀的特性个人十分推崇. 1.1设置本机用户身份 git config -global user.name "userName&q ...

  5. 攻城利器 —— Carthage简单介绍

    01 Carthage简单介绍 主页:https://github.com/Carthage/Carthage.git 作者:Justin Spahr-Summers等 版本:0.18 目标:用最简单 ...

  6. git简单入门

    git简单入门 标签(空格分隔): git git是作为程序员必备的技能.在这里就不去介绍版本控制和git产生的历史了. 首先看看常用的git命令: git init git add git comm ...

  7. [转] Portable Trac 简单介绍 - 兼谈为什么不选择 Redmine

    Portable Trac 简单介绍 - 兼谈为什么不选择 Redmine ​Trac是一个轻量级的软件项目管理环境,如果在工作中涉及一个开发团队的管理并且关心项目管理工具的话,相信都在 ​Trac. ...

  8. git简单使用教程

    git 的基本使用指令 我们先来简单熟悉一下 git 的简单使用的指令, 作为最基本的 git 指令一定要熟悉 12345678910111213141516171819202122232425262 ...

  9. app 下载更新 file-downloader 文件下载库的简单介绍和使用

    app 下载更新 file-downloader 文件下载库的简单介绍和使用 今天介绍一个下载库:file-downloader 文件下载库 说明: * 本文内容来自原 file-downloader ...

随机推荐

  1. 微信小程序中登录操作-----与-----引用

    login.wxml <view> <!-- <image src="./88.png"></image> --> # 在当前目录下 ...

  2. 原生js打地鼠

    我们要做的是一个打地鼠的游戏,只用原生js 1.导入需要的图片 2.编写页面css样式demo.css *{ margin:0; padding:0; } .game{ position: relat ...

  3. 洛谷 P2085 最小函数值

    目录 题目 思路 \(Code\) 题目 戳 思路 首先这些函数全部单带递增,因为\(a\),\(b\),\(c\)都是正整数. 我们将全部的函数的\(x\)为\(1\)时的函数值放入优先度列(小根堆 ...

  4. 计蒜客 39270.Angel's Journey-简单的计算几何 ((The 2019 ACM-ICPC China Shannxi Provincial Programming Contest C.) 2019ICPC西安邀请赛现场赛重现赛

    Angel's Journey “Miyane!” This day Hana asks Miyako for help again. Hana plays the part of angel on ...

  5. nodejs之mysql查询

    示例代码中的mysql版本 2.14.1 参考代码 /** * 测试mysql连接 */ var mysql = require('mysql'); var connection = mysql.cr ...

  6. Apache2 服务配置 ubuntu16.04 + django1.11

    (步骤) 环境 Ubuntu 16.04 Python 3.5.2 Django 1.11 Apache 2.4 1.Apache2安装 sudo apt-get install apache2 查看 ...

  7. mysql 根据日期时间查询数据

    mysql> select * from table1; +----------+------------+-----+---------------------+ | name_new | t ...

  8. 证书转化 .cer .crt .jks

    cer格式——>JKS (keytool 为java JDK自带的,可以在bin目录下找到) keytool -import -alias mycert -file d:\def.cer -ke ...

  9. ELK平台搭建及日志监控

    一.使用背景 当生产环境有很多服务器.很多业务模块的日志需要每时每刻查看时 二.环境 系统:centos 6.5 JDK:1.8 Elasticsearch-5.0.0 Logstash-5.0.0 ...

  10. 【软工实践】Alpha冲刺(5/6)

    链接部分 队名:女生都队 组长博客: 博客链接 作业博客:博客链接 小组内容 恩泽(组长) 过去两天完成了哪些任务 描述 任务界面设计,任务功能后端实现 任务计时功能及界面实现 展示GitHub代码签 ...