关于文件状态  
一般仓库中的文件可能存在于这4种状态:
 1)Untracked files                     → 文件未被跟踪(A)
 2)Untracked but not Change   → 已跟踪,但是未修改(B)
 3)Changes but not updated     → 已跟踪,文件被修改,但并没有添加到暂存区(C)
 4)Changes to be committed    → 已跟踪,文件被修改,已添加到暂存区,这是下次提交的内容(D)
 
常用GIT命令
1. git clone  (B)
说明:将代码克隆到本地(本地:当前控制台进入的目录)
 
2. git add   (A->D)
git add <filePath/folderPath>  说明:将指定新文件添加到本地暂存区(可以是一个文件,也可以是一个文件夹下面的所有文件)
git add .                                    说明:将所有的新文件提交暂存区
git add --all                              说明:将所有的新文件提交暂存区
 
3.  git reset HEAD <filePath/folderPath> (D->A)
说明:将新添加的文件撤出暂存区
 
4. git commit  (C->D)
git commit <filePath/folderPath>  说明: 将指定文件修改提交到本地暂存区(可以是一个文件,也可以是一个文件夹下面的所有文件)
git commit -a                                  说明:将所有修改过的工作文件提交暂存区git 
 
5. git log
说明:查看commit提交日志(每次提交会生成唯一的commit_ID)
 
6. git reset
git reset  --soft  commit_ID       说明:将当前工作区恢复到commit_ID指示的那次状态, 工作区代码的修改保留  (D->C)
git reset --hard commit_ID    说明:将当前工作区恢复到commit_ID指示的那次状态, 工作区代码的修改同时被强制回退到修改之前的状态 (D->B)
 
7. git push  (D->B)

git push                                 说明:将提交到暂存区的修改推送到远程仓库

git push -u origin master      说明:clone到本地后的初次提交
 
8. git pull  (B->B)

说明:将远程仓库更新到本地

 
9. git diff <filePath/folderPath>
说明:比较当前文件和暂存区文件差异(一个文件或者文件夹下面的所有文件)
 
10. git status
说明:扫描当前工作区的所有改动,包括文件的增加、删除、修改
 
11. git checkout 
git checkout <filePath/folderPath>  说明:撤销本地修改(可以是一个文件,也可以是一个文件夹下面的所有文件)
git checkout -f                                  说明:撤销本地所有修改
 
 
关于冲突
大部分代码冲突是以下情况产生: 本地代码未更新到远程仓库的最新状态, 然后本地修改之后进行pull操作, 如果远程仓库的代码和本地修改代码部分有重叠部分,这部分就会产生冲突。
这时把本地修改commit提交之后,进行pull操作
查看冲突文件如下:
<<<<<  和  >>>>>>>之间的就是冲突代码, "==========="之上的是本地的修改, "==========="之下的是远程仓库的最新代码
然后根据实际情况,合并本地的修改和远程仓库的修改, 然后再进行commit操作即可。
 
 
关于文件的跟踪设置
如果我们希望项目目录下面的某些文件的增删改不被跟踪(即不进入远程仓库),尤其是是编译生成的中间文件和目标文件,需要在.gitignore中进行设置,
可以忽略某个文件夹,也可以忽略某个后缀的一类文件。如果项目跟目录下没有该文件(.gitignore是个隐藏文件),则可以手动创建: 以.gitignore为文件名的一个文本文件。
例如:

git基本用法说明(原创+验证)的更多相关文章

  1. Git的用法

    Git的用法 Git 的也可以理解为版本控制器.版本控制器(维基的解释):维护工程蓝图的标准作法,能追踪工程蓝图从诞生一直到定案的过程.此外,版本控制也是一种软件工程技巧,借此能在软件开发的过程中,确 ...

  2. git subtree用法(转)

    git subtree用法 一.使用场景 例如,在项目Game中有一个子目录AI.Game和AI分别是一个独立的git项目,可以分开维护.为了避免直接复制粘贴代码,我们希望Game中的AI子目录与AI ...

  3. git revert用法以及与git reset的区别

    git revert用法 git revert 撤销 某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销 作为一次最新的提交 * git revert HEAD     ...

  4. Git进阶用法

    Git高阶用法 1. 基本概念 你的本地仓库由Git维护的三棵树组成.第一个是你的工作目录,它持有实际文件:第二个是缓存区(Index),它像个缓存区域,临时保存您的改动:最后是HEAD,指向你最近一 ...

  5. 转:Git: git stash 用法小结

    一.应用场景 综合下网上的介绍和资料, git stash (git储藏)可用于以下情形: 发现有一个类是多余的,想删掉它又担心以后需要查看它的代码,想保存它但又不想增加一个脏的提交.这时就可以考虑  ...

  6. git cherry-pick用法

    场景: 如果你的应用已经发布了一个版本2.0, 代码分支叫release-2.0, 现在正在开发3.0, 代码的分支叫dev-3.0. 那么有一天产品说, 要把正在开发的某个特性提前上线, 也就是说要 ...

  7. git clean用法

    git clean用法   想批量删除branch中新加的文件(untracked files),,git reset --hard不行-   首先确认要删除的文件 git clean -fd -n ...

  8. Git 的用法

    对于GIT  的用法,最近一直在寻找方法.网上也能找到一些方法.但是感觉说的不是很清楚,在这里我基于自己经验写一些. 对于任何一种方法都要安装GIT. 我是基于VS Code 2015 来做的. 在安 ...

  9. Git复习(十三)之git revert用法及与git reset区别

    git revert用法以及与git reset的区别 git revert用法 git revert 撤销 某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销 作为一 ...

随机推荐

  1. 内存管理 - MEMORY POOL

    内存池优势: 效率高,频繁的new和delete效率低下 减少内存碎片,反复向系统申请和释放内存会产生大量内存碎片 防止内存泄露 内存池设计思路: 内存池可以根据实际需要,设计成不同的样子.下面是针对 ...

  2. CGAL

    一.interface http://jamesgregson.blogspot.com.au/2012/05/example-code-for-building.html

  3. 12、(扩展)获取省份表,填充于下拉列表框的简易js

    在制作省份下拉列表时,我们常常会遇到大量省份不停复制粘贴的问题,比如百度到这样一个填充着省份信息的表格: 里面含有很多条数据和内容,这时候要一条一条复制粘贴非常繁冗,所以在同事的启发下我写了一个简易的 ...

  4. Linux mint 18版本开启SSH服务

    linux mint 18版本默认是没有安装ssh server的 需要手动安装 安装ssh server: 此命令需要联网,会自动下载安装 安装之后看是否开始了ssh, 看到ssh-agent 和s ...

  5. LPTHW 结束了

    基本上在学习了LPTHW的 类 继承 和 合成以后基本就结束. 后面几章都是根据web.py进行网页编程,以及自动化测试的.目前来看不太感兴趣. 稍后我可能找个实际项目进行锻炼下,比如 Crossin ...

  6. ASP.NET收发邮件

    在.NET中常见到在线发邮件的实例,网站加上这个功能可以方便站长与用户的交流. NET 中发邮件有时候会用到IIS组件中的邮件服务器,不过复杂.对虚拟主机的配置也较麻烦, 也可用第三方组件比如Jmai ...

  7. 浅谈GPU

    Programmable Graphics Processing Unit(GPU),可编程图形处理单元,可编程图形硬件. 98年NVIDIA的modern GPU研发成功,使用晶体管(transis ...

  8. Python实例2

    2.企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%:利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%:20万到40万之间 ...

  9. java序列化知识整理

    1. 什么是序列化? 序列化就是只把一个对象串行化成一个字节流,用于网络传输或者持久化. 2. 序列化的使用场景? a). 把内存中的对象持久化到文件或者数据库中: b). 对象在网络上传输. 3. ...

  10. Todo List

    Contest 11.13 2016ACM/ICPC亚洲区青岛站(5/13, solved 7/13) Training 11.06 2016年中国大学生程序设计竞赛(合肥)(solved 6/10) ...