一种常见的版本控制工具

获取
克隆仓库

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. Windows用户模式调试内部组件

    简介 允许用户模式调试工作的内部机制很少得到充分的解释.更糟糕的是,这些机制在Windows XP中已经发生了根本性的变化,当许多支持被重新编写时,还通过将ntdll中的大多数例程作为本地API的一部 ...

  2. 从TEB到PEB再到SEH(二)

    什么是SEH? SEH( Structured Exception Handling , 结构化异常处理 ) 结构化异常处理(SEH)是Windows操作系统提供的强大异常处理功能.而Visual C ...

  3. 文件搜索命令find

    1.路径加文件名搜索(find): 查找的是etc目录下的以init为名字的文件. 加通配符后为模糊搜索,只要文件名中含有init即可. 查找etc目录下以init开头的七位文件名. 2.搜索时不区分 ...

  4. linux命令之------Chmod命令

    Chmod命令 1)作用:linux和unix的文件调用权限分为三级:文件拥有者/群组/其他.利用chmod可以控制文件如何被他人所调用.(主要就是修改文件夹,文件的权限) 2)U表示该文件的拥有者, ...

  5. updateprimarykey 和updateprimaryKeySelective

    updateprimarykey 会对左右的字段都进行更新,updateprimaryKeySelective 只会对不为null的字段进行更新..所以在填表的web项目需要注意这个两个方法的选择,因 ...

  6. 微信小程序之使用wx:for遍历循环

    效果图如下: 实现代码如下:type.js: // pages/type/type.js Page({ /** * 页面的初始数据 */ data: { types: "" }, ...

  7. thread 线程分析工具

    (1) https://fastthread.io/ 将线程 jstack pid 出来之后,压缩一下成为zip 然后 上传上去

  8. [转]Java 之 Serializable 序列化和反序列化的概念,作用的通俗易懂的解释

    原文地址:https://blog.csdn.net/qq_27093465/article/details/78544505 遇到这个 Java Serializable 序列化这个接口,我们可能会 ...

  9. [LeetCode] 119. Pascal's Triangle II 杨辉三角 II

    Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3,Return [1,3, ...

  10. [LeetCode] 375. Guess Number Higher or Lower II 猜数字大小 II

    We are playing the Guess Game. The game is as follows: I pick a number from 1 to n. You have to gues ...