一:相关概念:

1:工作区(Working Directory): 就是你在电脑里能看到的目录

2:版本库(Repository): 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
2.1): Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。2.2): git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支。

3:为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件。

4:Git的分支是与众不同的,无论创建、切换和删除分支,Git在1秒钟之内就能完成!无论你的版本库是1个文件还是1万个文件。

5:配置Git的时候,加上--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用

二:Git常用命令学习

1:mkdir --在当前目录创建文件夹
2:cd --目录切换
3:pwd --命令用于显示当前目录
4:git init --通过git init命令把这个目录变成Git可以管理的仓库
5:git add [file name] --add 将本地文件添加到创储
6: ls -ah --列出当前目录下的文件
7: git checkout --track origin/dev 切换到远程dev分支
8: git merge origin/dev 将分支dev与当前分支进行合并
9: git checkout dev 切换到本地dev分支
10:git config --list 看所有用户
11:git commit -v 当你用-v参数的时候可以看commit的差异
12:git log 看你commit的日志
13:git diff 查看尚未暂存的更新
14:git status 命令可以让我们时刻掌握仓库当前的状态
15:git diff 查看difference
16:git log --pertty=oneline 查看commit日志,同时查看commit id
17:git reset --hard HEAD^ 回滚到上一个版本
18:cat [file name] 查看文件内容
19:git reset --hard 版本号 回滚到指定版本号
20:git reflog 用来记录你的每一次命令,可以通过该命令来找到对应的commit id
21:git checkout -- file 可以丢弃工作区的修改
22:git reset HEAD file 可以把暂存区的修改撤销掉(unstage),重新放回工作区 (已经git add 或者git commit的文件回退到工作区)
23:git push -u origin dev 第一次将暂存修改提交到远处分支
24:git push origin dev 推送最新修改
25:git checkout -b dev 我们创建dev分支,然后切换到dev分支
26:git branch -d dev 删除分支
27:git push origin :feature1 --删除远程分支后,推送
28:git branch --显示分支
29:git log --graph --查看分支合并图
30:git branch -D feature-vulcan 分支还没有被合并,如果删除,将丢失掉修改,如果要强行删除,则使用该命令
31:git remote 查看远程库的信息
32:git remote -v 显示远程库更详细的信息
33:git branch --set-upstream branch-name origin/branch-name 建立本地分支和远程分支的关联
34:git tag v1.0 --根据当前仓库创建一个tag
35:git tag -d v0.1 --删除一个tag
36:alias --通过alias命令设置别名
例如:$ git config --global alias.st status 现在git st 等价于git status

分支
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>

日志
git log
git log <file> # 查看该文件每次提交记录
git log -p <file> # 查看每次详细修改内容的diff
git log -p -2 # 查看最近两次详细修改内容的diff
git log --stat # 查看提交统计信息

三:学习中遇到的问题与解答

1:Git Bash窗口退出日志详情快捷键
Ctrl + C 退出窗口

2:git锁定解决方法

2.1):今天 当我 执行 git add somefile 的时候,出现 如下 错误:

If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git
process is running and remove the file manually to continue.
解决方法:rm -f ./.git/index.lock

2.2): 编译ICS时 出现 如下错误:

build/core/java.mk:20: *** dalvik/dexgen: Invalid LOCAL_SDK_VERSION '4' Choices are: current . Stop.
解决方法:rm -rf prebuilt ; repo sync prebuilt

Git基础知识与常用命令的更多相关文章

  1. Shell编程(二)——shell的基础知识及常用命令

    shell的基础知识 一.bash有以下特点: 1.记录命令历史 2.指令和文件名补全 3.别名 alias rm='rm -i' 4.通配符 * 0个或多个字符 ?​匹配一个字符 5 输入输出重定向 ...

  2. MongoDB基础知识与常用命令

    SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据库 table collection 数据库表/集合 row document 数据记录行/文档 col ...

  3. MySQL基础知识和常用命令总结

    说明:以下内容是阅读书籍<<MySQL必知必会>>的摘要和总结 检索数据 排序检索数据 过滤数据 使用通配符过滤 使用正则表达式进行搜索 创建计算字段 使用数据处理函数 汇总数 ...

  4. git基础入门之常用命令操作

    本内容参考:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 初学,有什么不对的地方 ...

  5. linux基础知识和常用命令

    1.修改主机名 切换到root,然后执行 vim /etc/sysconfig/network,进入其中,更改hostname即可.insert进入修改,esc+:,wq保存退出. 2.用户切换 普通 ...

  6. (四)FastDFS 高可用集群架构学习---后期运维--基础知识及常用命令

    1.fastdfs 七种状态 FDFS_STORAGE_STATUS:INIT :初始化,尚未得到同步已有数据的源服务器 FDFS_STORAGE_STATUS:WAIT_SYNC :等待同步,已得到 ...

  7. Linux基础 - 系统优化及常用命令

    目录 Linux基础系统优化及常用命令 Linux基础系统优化 网卡配置文件详解 ifup,ifdown命令 ifconfig命令 ifup,ifdown命令 ip命令 用户管理与文件权限篇 创建普通 ...

  8. Linux基础系统优化及常用命令

    # Linux基础系统优化及常用命令 [TOC] ## Linux基础系统优化 Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令. - ...

  9. Linux 系统基础优化和常用命令

    目录 Linux 系统基础优化和常用命令 软连接 tar解压命令 gzip命令 netstart命令 ps命令 kill命令 killall命令 SELinux功能 iptables防火墙 Linux ...

随机推荐

  1. (转)You might not need jQuery

    You might not need jQuery You certainly can support IE 9 and below without jQuery, but we don't. Ple ...

  2. LoadRunner测试结果分析03 转载至zhangzhe的新浪博客

    LoadRunner测试结果分析之我见 前面分析的Web Resource(网络资源)的测试情况,其主要关注的是服务器性能,而系统本身和环境都有可能存在问题,页面诊断(Web Page Diagnos ...

  3. ios 自定义键盘

    由于项目需要,需要自定义键盘.ios系统键盘会缓存键盘输入,并保存在系统目录下的文件里,并且是明文存储,存在帐号密码泄漏风险.在别人代码基础上修改了下,美化了下界面,去掉了字符输入,加了点击特效,截图 ...

  4. Spring集成Memcached三种方式(一)

    转载:http://blog.csdn.net/u013725455/article/details/52102170 Memcached Client目前有3种: Memcached Client ...

  5. VS2013不显示最近打开文件

    首先点击开始在左下角输入"regedit" 右击HKEY_CURRENT_USER,点击查找,输入NoRecentDocsHistory 在右边找到NoRecentDocsHist ...

  6. C++读入XML文件

    最近要做一个VRP的算法,测试集都是放在Xml文件中,而我的算法使用C++来写,所以需要用C++来读取Xml文件. 在百度上搜"C++读取Xml文件",可以出来很多博客,大多数是关 ...

  7. jquery 高度的获取

    alert($(window).height()); //浏览器当前窗口可视区域高度 alert($(document).height()); //浏览器当前窗口文档的高度 alert($(docum ...

  8. Java开发的命名规范

    Java的命名规范 定义规范的目的是为了使项目的代码样式统一,使程序有良好的可读性,便于日后维护. 1.工程的命名(全用小写字母) 工程的命名一般全用小写字母,单词之间用下划线“_”隔开. 2.包的命 ...

  9. vertica 8.0 新特性

    前言: <<line>> 表明在vertica 8.0文档中的title   正文: 1-支持平台 1.1-操作系统 <<Vertica Server and Ve ...

  10. 转:python list排序的两种方法及实例讲解

    对List进行排序,Python提供了两个方法 方法1.用List的内建函数list.sort进行排序 list.sort(func=None, key=None, reverse=False) Py ...