一,两个概念:
1.工作区:
你电脑里能看见的目录,比如一个项目文件夹就是一个工作区
2.版本库
工作区(该项目的文件夹)中有一个隐藏文件 .git ,就是git的版本库。(这个文件默认是隐藏,Ctrl+h 显示)
版本库中有:暂存区,本地仓库dev分支
git add 把工作区修改的文件添加到暂存区,
(如果修改的文件,必须先git add ,如果直接commit,会发现提交不了。该文件还是蓝色的)
git commit 暂存区的文件提交到当前分支(本地仓库)。只负责把暂存区的修改提交
(commit提交有原子性,即所有文件要么全部提交成功,要么全部失败)
git push 把本地代码推送到远程仓库的分支
二,管理修改
git跟踪并管理的是修改,而不是文件
修改:添加,删除一行,新建文件,删除文件都是修改
例如:
对同一个文件,第一次修改-->git add-->第二次修改-->git commit
注意:只有第一次修改的被提交了,第二次修改的没有添加到暂存区,所以没有commit
三,撤销修改
1.修改了工作区的文件后,没有 git add,也没有git commit.你想撤销修改
你可以通过Ctrl+z 撤回(时间长了不能完全撤销)
也可以通过git checkout --readme.text 撤销修改。把readme.text文件在工作区的修改全部撤销
********很重要(可以用来撤销配置文件)*****
git checkout -- /home/yaming/Desktop/workspace/Multi-MKBoot/mk-bean/src/main/java/com/mk/model/entity/ShipRecord.java

2.修改了工作区的文件后,执行了git add,没有执行git commit。你想撤销修改
你可以通过 git reset HEAD readme.text 把暂存区的修改撤销掉,重新放回工作区。再撤销工作区的修改
*****执行两条命令******
git reset HEAD /home/yaming/Desktop/workspace/Multi-MKBoot/mk-bean/src/main/java/com/mk/model/entity/ShipRecord.java

git checkout -- /home/yaming/Desktop/workspace/Multi-MKBoot/mk-bean/src/main/java/com/mk/model/entity/ShipRecord.java

3.修改时发生了冲突
比如你修改了数据库的配置文件resource.xml,此时你还没有git add,也没有git commit,而你拉代码时,别人的代码也修改了这个文件resource.xml,并且push到远程仓库了,你拉代码(把他修改的拉到了你的版本库)时就会出现冲突(同时修改了同一个文件)。
解决:先 git commit 你修改的文件(除了resource.xml)。(把没有冲突的文件先提交到版本库里)
然后:git checkout -f (用版本库里的版本替换工作区的版本)。
注意:你在resource.xml文件里的修改全部没有了,你现在工作区的resource.xml文件就是别人修改过的resource.xml文件

3.删除
一般情况下,我们通常直接在文件管理器中把没有用的文件删除,手动删除,或rm命令
$:rm test.txt
这是删除了工作区的文件,通过git status可以查看哪些文件被删除了
然后通过git commit提交。文件就从版本库中被删除了
万一删错了怎么办?
版本库(.git文件夹)里没有删除,可以用git checkout -- test.txt恢复
git checkout 就是用版本库里的版本替换工作区的版本(注意是替换)
四,分支管理
git branch 查看分支
git branch <name> 创建分支
git checkout <name> 切换分支
git checkout -b <name> 创建+切换分支

五.退回上一个版本。

情景:项目拉下来后,需要修改链接数据库配置文件。push代码时,该配置文件不提交。万一不小心提交了怎么办?此时已经commit了

解决:退回到上一个版本,此时还没有关闭

git reset --hard HEAD^
建议:先把修改过的文件拷出来,再退回到上一个版本,然后再拷进来。避免之前修改的文件全退回去,记不住已经修改的

工作区和版本库


修改工作区后,git add 把工作区修改的文件添加到暂存区
git commit 把暂存区文件添加到分支
 

git使用命令记录的更多相关文章

  1. 『GitHub』Git常用命令记录

    Commands: git init 把当前目录变成Git可以管理的仓库 随后出现.git目录,这个目录是Git来跟踪管理版本库的git commit -m "change message& ...

  2. Git 实用命令记录

    自从上次写了一篇 Git 入门 的相关博客以来,一直自以为自己能完全的掌握 Git,其实不然,今天一小伙问我,如何删除远程上面的一个分支,呃,不会. git branch -d 分支名 只能删除本地的 ...

  3. git常用命令记录

    配置本地仓库 git config --global user.name.git config --global user.email 查看配置详情 git config -l 初始仓库 git in ...

  4. 【记录】GIT 常用命令记录

    1. 查看所有的提交版本,包含当你co到之前提交版本后依旧可以看到以前的日志 git log --graph --pretty=format:'%h -%d %s (%cr)' --abbrev-co ...

  5. git 常用命令记录

    删除远程分支 git push origin --delete 远程分支名 删除本地分支 git branch -d 本地分支名 从master新建分支 git checkout -b 新分支名 建立 ...

  6. git 常用命令记录 -- 快捷&备忘

    1.安装 略2.git拉取远程分支 git config user.name git config user.email git config --global user.name xxxx git ...

  7. git命令记录

    1, clone 远程分支 git clone 命令默认的只会建立master分支,如果你想clone指定的某一远程分支(如:dev)的话,可以如下: A. 查看所有分支(包括隐藏的)  git br ...

  8. 【git】git一些命令使用记录

    目前git版本控制很多公司都在用,我把平时的使用做些记录,防止忘记. 1. 有时候分支比较多,我们会基于master建立一个新分支开发,有时候也会基于别的分支建立,但时间长了可能会忘记当前分支是基于哪 ...

  9. npm git 常用命令行 记录

    1. 推出node命令行: 两次ctrl+C或者一次ctrl+D    退出终端:exit; 2.npm 常用 npm install <name>  安装包 npm install &l ...

随机推荐

  1. C#异步编程の----Threadpool( 线程池)

    简介: 一个托管线程的创建需要数千个CPU周期,并且当发生线程切换时也会带来明显的开销.考虑线程的重用,避免不断重复创建新的线程是提高系统效率的一种方式. 线程池是一种提供效率的方式,它创建好一些线程 ...

  2. android:layout_margin真实含义 及 自己定义复合控件 layout()运行无效的问题解决

    一.关于layout_margin 搞Android时间也不短了.对layout_margin也不陌生了,可近期遇到一个问题让我发现,对它的认识还不够深入全面.大量网络资料上都说,layout_mar ...

  3. [TJOI2010]分金币

    嘟嘟嘟 看数据范围,就能想到折半搜索. 但怎么搜,必须得想清楚了. 假设金币总数为1000,有20个人,首先搜前10个人,把答案记下来.然后如果在后十个人中搜到了4个人,价值为120,那么我们应该在记 ...

  4. 转://三分钟读懂Oracle数据库容灾架之DataGuard

    目前市场上针对Oracle数据库常见的容灾产品大致可以分为两大类. Oracle 公司自己的容灾产品 非Oracle公司的容灾产品 Oracle公司目前的容灾产品有我们常见的DataGuard和属于中 ...

  5. Lock和Condition在JDK中ArrayBlockingQueue的应用

    ArrayBlockingQueue的实现思路简单描述,ArrayBlockingQueue的底对于互斥访问使用的一个锁.细节参考源码take和put方法: import java.util.conc ...

  6. Ros使用Arduino 1安装Arduino IDE

    安装Arsuino IDE sudo apt-get install arduino 设置库文件路径 在使用ROS的库文件时,必须在代码的开头包括: #include <ros.h> 接下 ...

  7. Qt+QGIS二次开发:向shp矢量图层中添加新的字段

    添加一个新的字段到shp文件中,并且从Excel里导入数据到该字段.原shp文件里的字段ID应该与Excel里的字段ID一一对应才能正确的导入.下图分别是shp的字段和Excel的字段 将class字 ...

  8. ubuntu install pip

    ubuntu 安装pip sudo apt-get update sudo apt-get upgrade sudo apt-get install python-pip

  9. 【Codeforces 1132F】Clear the String

    Codeforces 1132 F 题意:给一个串\(S\),问每次删除连续的一段相同字母,最少删几次将原串删空. 思路:考虑区间\(dp\),我们看要删多少次能把\([l,r]\)删空,那么最终答案 ...

  10. Qt之创建并使用静态链接库

    1.创建静态链接库 静态库的工程名字 添加包含的模型 更改一下类的名字 我的静态编译库的工程. 写一个简单的静态哭的代码为后面测试静态库使用 cpp代码: #include "staticb ...