一种常见的版本控制工具

获取
克隆仓库

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. rbenv mac&&linux 安装简单说明

    mac 可以通过brew linux 官方提供了运行脚本 # with curl curl -fsSL https://github.com/rbenv/rbenv-installer/raw/mas ...

  2. Linux 系统管理——账号管理

    一.用户账号管理 1.用户账户概述 用户账户的常见分类: 超级用户:root  uid=0  gid=0  权限最大 普通用户:uid>=500  做一般权限的系统管理,权限有限. 程序用户:1 ...

  3. SDSC2019【游记】

    目录 SDSC2019 游记 Day0 Day 1 Day2 Day3 Day4 Day5 Day6 Day 7 Day8 SDSC2019 游记 Day0 这次夏令营在日照某大学举行,我很想夸一夸喷 ...

  4. 网络开发Socket和ServerSocket

    已经发表个人公众号 Socket和ServerSocket Socket为"孔"或"插座",创建Socket,打开连接Socket的输入或输出流,对Socket ...

  5. 记录python循环引用带来的MemoryError错误解决

    在以前的python中,没有遇到过这样的错误,上来之后还是很蒙蔽的,问了几个业内的人,他们 都给我说让我改服务器里面配置的东西, 因为是要给大家用的,服务器要保证长久运行,不能临时去修改这个,导致在大 ...

  6. YoTube 视频如何下载

    因我学习自动化测试 ,国内的C# selenium 搭建的环境的资料甚少,然后去国外网站找资料, 曹鼠给我的gogle安装一个下载YoTube视频插件,特此非常感谢他. 前提条件需要一个服务器:Sha ...

  7. python 运行当前目录下的所有文件

     查看当前目录下所有py文件(本身除外run) import os file_list = os.listdir(os.getcwd()) # 获取当前目录下所有的文件名print(file_list ...

  8. Spring重定向

    1.使用HttpServletResponse的sendRedirect()方法. 示例: @PostMapping("/user/product/id") public void ...

  9. 解决vs2010按ctrl+f5,调试窗口一闪而过的方法

    vs2010调试按F5与按Ctrl+F5有什么区别 Ctrl F5测试运行后不自动推出控制台,直接按F5会自动退出去 解决vs2010按ctrl+f5,调试窗口一闪而过的方法 http://hi.ba ...

  10. Nginx配置SSL证书部署HTTPS网站(颁发证书)

    一.Http与Https的区别HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高 ...