本人待的两家公司,一直都是用的SVN,Git我只是自己私下学习和开发小项目的时候用过,工作一直没有使用过,但还是要学的。。。

Git是最好的分布式版本控制系统

工作流程

SVN和Git的区别

  SVN是集中式版本控制系统,版本库是集中放在中央服务器的,在工作的时候你首先要从中央服务器哪里得到最新的版本,然后在写完代码

之后,把这些内容提交到服务器。前提必须联网才能工作,一般都是公司自己的局域网

  Git是分布式版本控制系统,没有中央服务器的,每个人的电脑就是一个完整的版本库,工作的时候就不需要联网了,因为版本都是在

自己的电脑上。

多人如何协同工作:

  比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修

改了。

工作区和暂存区

工作区:

  就是你在电脑上看到的目录,比如目录下testgit里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区

范畴。

版本库(Repository):

  工作区有一个隐藏目录.git,这个不属于工作区,这是版本库。其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有Git

为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。

分支操作

git branch 创建分支

git branch -b 创建并切换到新建的分支上

git checkout 切换分支

git branch 查看分支列表

git branch -v 查看所有分支的最后一次操作

git branch -vv 查看当前分支

git brabch -b 分支名 origin/分支名 创建远程分支到本地

git branch --merged 查看别的分支和当前分支合并过的分支

git branch --no-merged 查看未与当前分支合并的分支

git branch -d 分支名 删除本地分支

git branch -D 分支名 强行删除分支

git branch origin :分支名 删除远处仓库分支

git merge 分支名 合并分支到当前分支上

  通常合并分支时,git一般使用”Fast forward”模式,在这种模式下,删除分支后,会丢掉分支信息,现在我们来使用带参数 –no-ff来

禁用”Fast forward”模式。

暂存操作

git stash 暂存当前修改

git stash apply 恢复最近的一次暂存

git stash pop 恢复暂存并删除暂存记录

git stash list 查看暂存列表

git stash drop 暂存名(例:stash@{0}) 移除某次暂存

git stash clear 清除暂存

回退操作

git reset --hard HEAD^ 回退到上一个版本

git reset --hard ahdhs1(commit_id) 回退到某个版本

git checkout -- file撤销修改的文件(如果文件加入到了暂存区,则回退到暂存区的,如果文件加入到了版本库,则还原至加入版本库之后的状态)

git reset HEAD file 撤回暂存区的文件修改到工作区

标签操作

git tag 标签名 添加标签(默认对当前版本)

git tag 标签名 commit_id 对某一提交记录打标签

git tag -a 标签名 -m '描述' 创建新标签并增加备注

git tag 列出所有标签列表

git show 标签名 查看标签信息

git tag -d 标签名 删除本地标签

git push origin 标签名 推送标签到远程仓库

git push origin --tags 推送所有标签到远程仓库

git push origin :refs/tags/标签名 从远程仓库中删除标签

常规操作

git push origin test 推送本地分支到远程仓库

git rm -r --cached 文件/文件夹名字 取消文件被版本控制

git reflog 获取执行过的命令

git log --graph 查看分支合并图

git merge --no-ff -m '合并描述' 分支名 不使用Fast forward方式合并,采用这种方式合并可以看到合并记录

git check-ignore -v 文件名 查看忽略规则

git add -f 文件名 强制将文件提交

git clone http://username:password@链接,例如http://zhangsan:123456@gitee.com/abc/def.git clone远程仓库到本地

git创建项目仓库

git init 初始化

git remote add origin url 关联远程仓库

git pull

git fetch 获取远程仓库中所有的分支到本地

忽略已加入到版本库中的文件

git update-index --assume-unchanged file 忽略单个文件

git rm -r --cached 文件/文件夹名字 (. 忽略全部文件)

取消忽略文件

git update-index --no-assume-unchanged file

拉取、上传免密码

git config --global credential.helper stor

Git命令原文地址:https://www.cxiansheng.cn/daily/490

日常开发需要掌握的Git命令的更多相关文章

  1. GitLab开发流程图示、Git命令一张图

    GitLab开发流程图示.Git命令一张图 一.GitLab开发流程图示 二.Git命令一张图 作图工具:ProcessOn 一.GitLab开发流程图示 二.Git命令一张图

  2. 协作开发中常用的Git命令小结

    先提一下最基础的git命令用法: git clone   从远端克隆到本地仓库 git add . (注意add和. 之间有一个空格)将全部改动添加到暂存区 git checkout xxx 撤销更改 ...

  3. zxx.cms.app 开发中的一些git命令

    第一行命令 查看当前项目git的状态 显示是干净的 第二行创建一个 login 分支 并且切换到login 分支 用于login功能模块的开发 第三行 查看当前 所有的 分支 安装less-loade ...

  4. 【开发笔记】- 安装Git命令

    1.查看linux版本信息: $ cat /etc/redhat-release 2.输入命令安装git: $ yum install git 3.等待下载,自动安装完毕,查看git版本 $ git ...

  5. 日常开发中常用的linux命令

    本文并不将linux的常用命令全部罗列出来,列出一下常用.容易忘记的命令. 更详细的说明见:https://www.cnblogs.com/xuxinstyle/p/9609551.html 文件相关 ...

  6. 日常开发使用SVN命令

    现在把我日常开发中用到的svn命令总结出来,做个备忘,其实真正用到也就那几个. 如果遇到参数不知道使用或其它困难请使用:svn --help 得到帮助 1)检出: svn co svn地址 本地路径 ...

  7. 痞子衡嵌入式:第一本Git命令教程(7.1)- 清理之缓存(stash)

    今天是Git系列课程第七课,上一课我们学会了查看Git本地历史提交,今天痞子衡要讲的是Git仓库的清理操作,一共4个命令,都是日常开发中非常实用的命令,掌握这4个命令,会让你有一种玩弄Git仓库于股掌 ...

  8. Python 命令行之旅:使用 argparse 实现 git 命令

    作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...

  9. Python 命令行之旅:使用 docopt 实现 git 命令

    作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...

随机推荐

  1. JQuery图例

  2. YTU 2520: 小慧唱卡拉OK

    2520: 小慧唱卡拉OK 时间限制: 1 Sec  内存限制: 128 MB 提交: 478  解决: 207 题目描述 小慧唱歌非常好听,小鑫很喜欢听小慧唱歌,小鑫最近又想听小慧唱歌了,于是小鑫请 ...

  3. BZOJ_2565_最长双回文串_manacher

    BZOJ_2565_最长双回文串_manacher Description 顺序和逆序读起来完全一样的串叫做回文串.比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不 ...

  4. IDEA中 Spark 读Hbase 报错处理:

    SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] // :: ERROR RecoverableZooKeepe ...

  5. C#面向过程之类型转换、算术运算符、关系运算符、逻辑运算符、if-else语句、switch-case、循环结构(while、for)、三元表达式

    数据类型转换: int.parse()只能转换string类型的 当参数为null时会报异常int i =Convert.ToInt32(false) 运行结果是0int i =Convert.ToI ...

  6. Nginx配置try_files实践二

    本文内容承接<Nginx配置try_files实践一> 1. 环境: OS:Ubuntu 15.10 nginx:nginx/1.9.3 (Ubuntu) 假设有三台虚拟机db1(IP:1 ...

  7. [Shell学习笔记] read命令从键盘或文件中获取标准输入(转载)

    转自:http://www.1987.name/151.html read命令是用于从终端或者文件中读取输入的内部命令,read命令读取整行输入,每行末尾的换行符不被读入.在read命令后面,如果没有 ...

  8. PCB 漏加阻抗条的臆想(转)

    阻抗条,我对你是有感情的,这你一定要相信我! 否则,不会在之前的每一次拼板,都不忘拥你入Panel之怀. 自做CAM开始,已记不清我们曾有多少次不期而遇, 我们一同迎接朝阳,送走晚霞,凝望窗外如洗的月 ...

  9. bzoj 1638: [Usaco2007 Mar]Cow Traffic 奶牛交通【记忆化搜索】

    震惊!记忆化搜索忘记返回map值调了半小时! 边(u,v)的经过次数是:能到u的牛数*v到n的方案数.正反两次连边,dfs两次即可 #include<iostream> #include& ...

  10. Akka源码分析-Cluster-Distributed Publish Subscribe in Cluster

    在ClusterClient源码分析中,我们知道,他是依托于“Distributed Publish Subscribe in Cluster”来实现消息的转发的,那本文就来分析一下Pub/Sub是如 ...