git简介:

git是分布式版本控制系统,相比较svn相比,git会在本地保存完整的提交记录,即使远程服务器宕机数据消失,可以将本地分支提交到远程服务器,本地分支会保存完整的记录。只要文件提交到git中,就能保证这个文件永远不会丢失,可以根据提交id来找到这个文件。

git上每次提交记录会记录上次提交的id,git是保存和当前提交文件和前一个提交文件对比,来保存,这样减少保存的空间。

git的文件状态分为3中:

已修改--已修改文件是保存在当前工作区,

已暂存--将工作区修改的文件保存到缓存区中

已提交--将缓存区中的文件提交到对象库

git设置用户名可以分为3中,分别是全局、用户和本项目,在具体项目中使用哪个用户优先的优先级逐渐降低

针对系统:git config --system user.name 'system name'

针对用户:git config --global user.name 'global name'

针对项目:git config --local user.name 'local user'

git简单命令

1. git init 初始化本地仓库

2. git add .  将工作区修改的文件保存到缓存区中 git add hello.txt

3. git commit 将缓存区中的文件添加到对象库  git commit -m '添加hello.txt文件'

git reset --hard commit 回退到commit位置  ,在推送远程分支  git push -f 因为远程分支比本地分支commit提前,所以要强制推送,丢失commit后的提交

git revert -n commit,反做commit版本,不会影响后面操作  git commit -m "revert add text.txt"  git push 提交并推送,只丢失

revert相当于逆向操作,回退到上一步commit的内容

4. git status 查看文件状态

git rm hello.txt 删除文件  rm hello.txt删除文件

5. git rm --cached hello.txt  将添加到缓存区中的hello.txt文件回退到工作区

6. git HEAD hello.txt  另外一种将缓存区的文件回退到工作区

7. git  log 查看提交日志 git log -2 查看最近两次提交日志

git log pretty=online 日志以一行显示

git log --graph 以图型化显示提交记录

git reflog 记录所有的操作日志

8. git branch 查看所有分支

git branch newbranch 创建新分支

git checkout newbranch 切换到新分支

git checkout -b  newbranch2 新建并切换分支

9. git merge newbranch 将newbranch分支内容合并到本分支上

git merge --no-ff dev  以提交的方式合并分支

合并时如果new分支内容高于现在分支的内容,即new分支在本分支基础上还有提交,这时将采用fast ford快速合并

合并时如果不是上面的情况,可能会存在冲突,当冲突时,需要手工解决冲突

10. git branch -m dev1 devlop  将dev1分支修改为devlop

11. git stash 保存当前分支修改的内容临时保存

git stash list 列出stash内容

git stash pop 先恢复,再将已恢复的stash删除

git stash apply 恢复stash,但不删除

git stash drop stash{0} 删除stash0

git stash -m '设置保存当前stash备注'

12. 标签

git tag v1.0

git tag v2.0 -m '这时带有注释的标签'

git tag -d v1.0 删除v1.0标签

git tag 列出所有标签  git tag -l ‘*2’  列出标签结尾是2的所有标签

13 diff

git diff 比较工作区和缓存区文件之间不同

git diff HEAD 比较工作区和最近一次提交文件的不同
        git diff -cached 比较最新提交和缓存区文件不同

14 git pull git push

git remote add origin git地址

git push -u origin master  推送

git pull 拉取最新分支,git fetch+git merge

git push 推送最新分支,git fetxh+git merge

git remote show 显示远程分支   git remote show origin 详细显示origin分支

git同一个分支会存在3份,分别是本地分支,本地远程分支(远程分支,只读),远程分支,

在pull时,首先将远程分支的最近一次提交id同步给本地远程分支,然后后本地远程分支和本地分支合并(可能会产生冲突),提交时也是这样。

15. 将本地分支推送到远程分支上

git push origin src:desc 将本地的src分支内容,推送到远程desc分支

git push origin :desc 将空分支推送到远程,远程分支被删除

git push origin --delete dev 删除分支

        git push --set-upstream origin dev1:dev2 将本地的dev1分支创建到远程的dev2分支上

    16 远程分支修改名字只能先删除分支,再将本地分支推送大远程分支上

    17 建议本地分支和远程分支名一致

git开发实战:认识git的更多相关文章

  1. git开发实战:问题解决

    git作为一个高效的开发协作工具,其版本管理和分支管理是其高效管理代码的体现.但是我们在平时开发中,往往要一边修着bug一边做着新功能,这样有可能就会遇到以下几种场景 1.改完bug忘记切换分支了,代 ...

  2. Git详解之一 Git实战

    Git详解之一 Git实战 入门 本章介绍开始使用 Git 前的相关知识.我们会先了解一些版本控制工具的历史背景,然后试着让 Git 在你的系统上跑起来,直到最后配置好,可以正常开始开发工作.读完本章 ...

  3. Git 命令实战入门 ,奶妈级教程

    我不会用*官方*的语言告诉你Git 是什么,对此我表示深深得歉意--在我看来像CSDN.博客园.掘金等博客交流平台就是小的“GitHub”,只不过在这里更多的是一些零零散散的笔记或者文章,其实Gihu ...

  4. git 开发merge rebase 记录

    git status git lg git add src/ git commit -m "restful api and portal" //先commit到自己的本地branc ...

  5. git开发流程、常用命令及工具、TortoiseGit使用及常见问题

    根据我最近使用git的一些经历,git是基于分支的版本控制工具,分支有远程分支和本地分支. 一.开发流程 - 从远程服务器的master,clone一份项目文件到本地,然后本地master的基础上br ...

  6. fir.im Weekly - iOS开发中的Git流程

    本期 fir.im Weekly 收集了微博上的热转资源,包含 Android.iOS 开发工具.源码等好用的轮子,还有一些 APP 设计的 Tips,希望对你有用. 精仿知乎日报 iOS 端 @我偏 ...

  7. iOS开发——源代码管理——git(分布式版本控制和集中式版本控制对比,git和SVN对比,git常用指令,搭建GitHub远程仓库,搭建oschina远程仓库 )

    一.git简介 什么是git? git是一款开源的分布式版本控制工具 在世界上所有的分布式版本控制工具中,git是最快.最简单.最流行的   git的起源 作者是Linux之父:Linus Bened ...

  8. Windows下搭建Git开发环境

    Windows下搭建Git开发环境主要有以下三种方法: 1,VS,vs2013和vs2015中已经集成了git插件了 2,msysGit+TortoiseGit 3,msysGit+SourceTre ...

  9. [git]git开发流程

    git开发正确做法: 本地要有一个分支A和远端的分支保持对应 然后本地新开分支B开发,提交记录 如果需要将代码推送到远端的话,就切换回A,首先在A分支上pull同步远端的代码(pull还是fetch+ ...

随机推荐

  1. java虚拟机笔记-1

    java虚拟机学习笔记 Java技术的核心就是Java虚拟机,因为所有的Java程序都在虚拟机上运行.Java程序的运行需要Java虚拟机.Java API和Java Class文件的配合.Java虚 ...

  2. BZOJ 4675(点分治)

    题面 传送门 分析 由于期望的线性性,我们可以分别计算每个点对对答案的贡献 有三个人取数字,分开对每个人考虑 设每个人分别取了k个数,则一共有\(C_n^k\)种组合,选到每种组合的概率为\(\fra ...

  3. Codeforces 1162E Thanos Nim(博弈)

    一道有意思的博弈题.首先我们考虑一种必败情况,那就是有一方拿光了一堆石子,显然对方是必胜,此时对方可以全部拿走其中的n/2,那么轮到自己时就没有n/2堆,所以此时是必败态.我们先对所有石子堆sort, ...

  4. D Dandan's lunch

    链接:https://ac.nowcoder.com/acm/contest/338/D来源:牛客网 题目描述 As everyone knows, there are now n people pa ...

  5. 攻防世界--Hello, CTF

    测试文件地址:https://www.lanzous.com/i5ot1yd 使用IDA1打开 打开之后,这个字符串和第一题的有些类似,拿去转换一下,Flag就得到了 CrackMeJustForFu ...

  6. Ajax ——数据解析

             Ajax应用中数据解析是非常重要的一件事情.一般服务器返回数据有三种格式:txt , xml,  json 1.解析txt       当服务器返回的数据为字符串,则这种Ajax数据 ...

  7. elasticsearch 基础 —— 集群原理

    空集群 如果我们启动了一个单独的节点,里面不包含任何的数据和 索引,那我们的集群看起来就是一个 图 1 "包含空内容节点的集群". 图 1. 包含空内容节点的集群 一个运行中的 E ...

  8. Linux学习笔记4-CentOS7中redis3.2.9安装教程

    redis下载地址:http://www.redis.cn/download.html 1.将下载过来的redis-3.2.9.tar.gz文件复制到/usr/local文件夹下 2.tar xzf ...

  9. python socket 的理解(1)

    前言 socket的用法简单,但里面的概念有点模糊,记录自己本人的一点理解. socket层结构图 注意,从此图中看出socket处于tcp和应用层之间.那么它代表啥意思呢?简明的说,数据的传输都是底 ...

  10. Sass字符运算

    在 Sass 中可以通过加法符号“+”来对字符串进行连接.例如: $content: "Hello" + "" + "Sass!"; .bo ...