git是程序员中最常用的版本控制工具,学会git的基本使用是十分重要,特别是在公司里面的协同开发,废话不多说,下面贴出常用的命令。

1.基本配置

# 既然git是多人协同的工具,别人要看到你提交代码的同时当然也得知道你是谁。
# 那么第一步的配置当然是报上你的名字以及你的联系方式邮箱,可以通过以下的方式去进行配置。
git config --global user.name "Your Name"
git config --global user.email "email@example.com" # 如果要涉及推送到远程仓库的推送,你需要把你的ssh公钥挂到所在的远程服务器上。
# 不然没有权限push代码,公钥的生成可以使用以下命令,然后一直按enter就好了,最后把公钥放到你的服务器上面。
ssh-keygen -t rsa -C "email@example.com"

2.工作区
  工作区就是我们平常代码存放的所在的目录,如何在代码上的修改,都会首先在工作区看到。

1.创建版本库(init)
# 直接在你需要代码管理的目录新建git版本库
git init 2.克隆远程项目(clone)
# 然而事实如果在实际工作中,我们并不会经常创建版本库项目,而是拉取别人的项目进行协同开发。
# 后面的参数为项目的ssh链接
git clone "coder@example.git" 3.查看提交情况(status)
# 想知道当前提交了文件没有?或者提交了哪些文件,或是否是最新分支
git status 4.撤销工作区文件的修改(checkout)
# 感觉自己搞砸了代码文件,想还原全部修改的文件(不能撤销新增文件)
git checkout .
# 其实checkout的作用远不止如此,更多是签出(移动到)到其他分支或者其他提交节点,后面还会有介绍 5.清除新增的文件(clean)
# 和上面的命令可以做到完全撤销全部修改
git clean -df

3.缓冲区

  缓冲区的作用类似于商场的购物车,我们的代码文件就像商场的商品,我们只会放入我们想要的商品(想提交的代码文件)到购物车(缓冲区),期间我们可能还会对购物车里的商品进行筛选,或者新增商品,最后再把全部购物车里面的商品一次性地拿去结账(全部缓冲区文件提交到版本库)。

1.提交文件到缓冲区(add)
# 提交一个文件
git add filename
# 提交全部文件
git add --all 2.撤销缓冲区的修改(reset)
# 不小心把不想提交的文件add到缓冲区
# 可以使用下面的命令还原缓冲区
git reset HEAD 3.对比工作区的文件和缓冲区文件(diff)
git diff <文件名>

4.版本库

  版本库会记录git提交的历史记录,其重要作用不容置疑!我们可以通过版本库查看历史提交的信息(包括提交人,提交日期,提交的文件的内容),回滚代码,比对不同版本库的文件的不同。

1.把缓冲区的修改提交到版本库(commit)
# 养成良好的代码习惯,后面信息提示最好还是要写上的
git commit -m "提交的信息提示"
2.查看版本库提交记录(log)
# 你可能想查看最近的全部版本库更新情况
git log
# 或者你只想查看某个分支的提交记录
git log BranchName
# 某个文件被修改了,想查看该文件的修改历史或文件夹下的文件修改
git log filename
git log dir
# 查看的日志可能会很多,你可以按q退出日志的查看 3.版本回滚(checkout)
# 可能你觉得当前这个版本有点问题,想回到以前的版本
# 通过上面的git log可以查看历史提交版本库的哈希码,也就是该版本库的唯一标示
git checkout <哈希码>

5.分支管理

  分支是git里面很重要的一个概念,在协同开发中,往往包含很多个分支,每个开发中的不同的功能的代码可以提交到不同的分支上,这样各个功能之间的开发互不影响,整个系统开发完成之后再去进行分支之间的合并,这样就可以拥有全部分支的功能。

1.创建新的分支(branch)
# 注意新的分支在刚刚创建出来的时候代码内容和原来所在的分支是一样的
# 创建新的分支
git branch <分支名>
# 创建新的分支并转到该分支(更常用)
checkout -b <分支名> 2.列出所有分支
git branch 3.切换分支(checkout)
git checkout <分支名> 4.删除分支
# 如果分支已经被合并了或者没有测试的价值,可以考虑删除该分支(仅仅少点分支看着顺眼)
git branch -D <分支名> 5.合并分支(merge)
# 分支最重要的作用!
# 这个命令是当前分支合并参数里的分支(合并之后当前分支还是原来的分支,例当前是branch1,合并branch2之后变成还是处于branch1)
# 合并最麻烦的事情就是可能会产生冲突,具体解决冲突的方法可以参考百度,这里不累赘。
git merge <被合并的分支>

6.远程版本库

  远程仓库的可以让你的代码同步到远程服务器,达到备份效果,更重要的是让更多人在网上看到你的代码,从而拉取下来进行协同开发。

1.关联远程仓库(remote)
# 如果你在本地新建版本库,然后又想推到远程主机就需要进行关联
# 如果是clone下载下来的项目则不需要进行关联
git remote add <仓库名> <远程主机地址> 2.拉取远程版本库(fetch)
# 一段时间后,你的小伙伴可能已经更新了
# 这时候你需要定期拉取一下远程版本库去去查看别人的提交情况
# 默认拉取全部分支
# 注意一旦你的版本库
# 注意的是拉取不会更新你的代码,更新的代码是本地的origin/branch(版本库)
git fetch
# 你也可以指定某个远程主机的某个分支
git fetch <主机> <分支名> 3.更新本地版本库(pull)
# 更新远程版本库代码到本地
# 默认更新当前关联主机的当前分支的代码
git pull
# 指定对应的主机和对应的分支
git pull <主机名> <分支名>
# 其实更严谨做法是先拉取下来,然后查看提交的信息和文件再考虑合并,而不是一下子就更新。
# 或者先提交自己分支的代码再合并,不然拉取别人代码很可能出坑了,这时候你还可以还原代码。 4.代码推送到远程服务器(push)
# 把本地代码推送到远程服务器,如果当前版本落后于远程分支,
# 那么会提示你先合并代码之后再提交
# 默认推送本地分支到默认的主机
# 如果本地分支在远程仓库不存在,那么远程仓库会新建一个对应的分支
git push
# 推送本地分支到远程仓库的其他分支
git push <主机名> <本地分支名>:<远程分支>

git常用命令,助你快速入门的更多相关文章

  1. Git 常用命令 更新与提交

    整理了一下Git 常用命令,这个版本还是比较好用的,最后附上个人终结版,帮助你快速上手. 取得Git仓库 初始化一个版本仓库 git init Clone远程版本库 git clone yourgit ...

  2. Git常用命令清单笔记

    git github 小弟调调 2015年01月12日发布 赞  |   6收藏  |  45 5k 次浏览 这里是我的笔记,记录一些git常用和一些记不住的命令,这个笔记原本是基于 颜海镜的文章增加 ...

  3. Git常用命令和Git团队使用规范指南

    转自:https://wsgzao.github.io/post/git/ 前言 在2005年的某一天,Linux之父Linus Torvalds 发布了他的又一个里程碑作品——Git.它的出现改变了 ...

  4. - Git常用命令 基础 总结 MD

    目录 目录 Git常用命令 帮助 help 常用操作 初始化 clone init 提交 push 暂存 更新 撤销修改 分支 branch 查看分支 创建分支 切换分支 checkout 删除分支 ...

  5. git 常用命令使用,git bash通用命令

    git 常用命令 1.强制推送(慎用,除非你认为其他冲突等可以丢弃 或者不是很重要) git push -- force 2.创建文件等小命令 touch a // 创建一个a文件 >> ...

  6. Ubuntu常用命令及git常用命令

    1. CMakeLists.txt中指定OpenCV路径 set(OPENCV_DIR /***/***/opencv-2.4.9) 2. cmake工程编译安装 mkdir build cd bui ...

  7. git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  8. Git 常用命令详解

    Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...

  9. Git 常用命令大全

    Git常用操作命令: 1) 远程仓库相关命令 检出仓库:$ git clone git://github.com/jquery/jquery.git 查看远程仓库:$ git remote -v 添加 ...

  10. Git常用命令总结

    Git常用命令总结 git init      在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹.   git clone ...

随机推荐

  1. SQL SERVER 的前世今生--各版本功能对比

    背景 今天举办的 Data Amp 大会上,微软向开发者们强调了 数据如何影响他们的应用和服务 ,顺道还宣布了几个小新闻.这个免费的线上研讨会不仅展示了未来的机器学习远景,还发布了 SQL Serve ...

  2. 画地为Mask,随心所欲的高效遮罩组件[Unity]

    在上一篇博文"扔掉遮罩,更好的圆形Image组件"中,笔者改变Image的顶点数据,使得Image呈圆形显示,避免了Mask的使用,从而节省Drawcall消耗,提高渲染效率了.这 ...

  3. C#中 Equals和= =的区别

    C#中 Equals和= =的区别 前言:最近感觉技术进步实在是太慢,一直被游戏缠身不能自拔哈哈,但是游戏打多了真的是感觉整个人浮躁的不行,所以我现在要去游戏多写代码多看书,今天在博客园中看到一个前辈 ...

  4. 谈谈一些有趣的CSS题目(十七)-- 不可思议的颜色混合模式 mix-blend-mode

    开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

  5. Unity 消息发送机制 解析

    该博客,只为解析,解析,解析,已经整理好,已经整理好,已经整理好.代码核心原理套用网上最流行的那一套,也是最常用游戏开发适用的消息机制.这里面加上自己的一些优化,极大的修正(哈哈),实测,没问题.万一 ...

  6. linux下实时监测命令运行结果工具:watch

    watch是一个非常实用的工具,可以实时监测一些经常变化的命令结果或文件,而不需要手动一次一次的输入命令. 语法: watch [选项] [命令参数] 选项: -n :指定刷新间隔时间,默认2秒. - ...

  7. MySQL数据库操作常用命令

    MySQL数据库操作常用命令DOS连接数据库1.安装MySQL配置好环境2.运行cmd命令net start mysql3.找到mysql文件根目录输入命令mysql -h localhost -u ...

  8. 《安卓网络编程》之第二篇 java环境下网络通信的综合应用

    经过前面内容的学习,我们了解了Java技术中实现网络通信的基本知识.下面将通过一个具体视力的实现过程,讲解客户端和服务器端通信的流程. 服务器端的实现文件是 Server.java,代码如下: imp ...

  9. 多线程编程-- part 2 线程的生命周期和优先级

    线程的创建到消亡的历程: java多线程的5种状态: (1)New(新建) new Thread(run()) 该线程还没开始运行,状态是new,在程序运行前还有一些基础工作要做 (2)runnabl ...

  10. python连接sql server数据库实现增删改查

    简述 python连接微软的sql server数据库用的第三方模块叫做pymssql(document:http://www.pymssql.org/en/stable/index.html).在官 ...