基本命令
初始化设置
配置本机的用户名和 Email 地址:
- Git config --global user.name "用户名"
- Git config --global user.email "邮箱地址"
创建版本库(仓库):
1. 版本库又叫仓库(repository), 这个目录里面的所有文件都可以被 Git 管理起来, 每个文件的修改, 删除都能被跟踪.
2. 在合适的位置直接鼠标右键创建一个空目录作为仓库, 然后从 Git-Bash 命令行进入到该目录, 或者也可以使用命令行创建空目录, 再进入到该空目录中.
3. 以下给出创建并初始化 Git 仓库的代码:
<1 > 进入到仓库的位置, 我将仓库放在了 C:\Android\Git-repositories 目录下, 注意, 使用 cd 命令进入到目录中时, 在 Git-Bash 中应该使用斜线 "/", 而不是反斜线 "\".
相关指令:
cd C:/Android/Git-repositories
mkdir new_repository_1 创建新的目录
cd new_repository_1 进入到创建的目录
使用 init 命令将当前目录初始化为 Git 仓库
- 1.Git init
- Initialized empty Git repository in C:/Android/Git-repositories/new_repository_1/.Git/
- (显示信息意思为: 初始化了一个空的 Git 仓库, new_repository_1 目录下多了一个. Git 目录, 时用来管理版本库的)
将数据提交到 Git 仓库(本地仓库)
第一步: 添加文件
1.Git add . 添加所有的文件, 文件夹
2.Git add <file> 添加指定名称的文件,<>内部写文件全称
注: 如果文件没有做出任何修改, 则默认不会添加任何文件
第二步: 提交文件
Git commit -m "commit info" 提交本次事务, 即将 add 的文件提交到 Git 仓库, 引号内部表示本次提交的提示信息
查询提交状态
Git status 显示提交的状态: 已经添加, 等待提交事务的文件 (绿色字体表示); 已经改变但是没有添加(not staged) 的文件(红色字体表示);
查询该文件和 Git 仓库中的文件的区别, 即做了什么修改
Git diff <文件全称> 如果已经 add 了, 就打印不出有什么修改了, 这一步骤应该在 add 之前, 即添加之前可以用来看看做了什么修改.
打印历史记录
Git log
commit xxx commit id 版本号
Author:xxx<[email protected]> 提交人和邮箱
Date:xxx 提交的时间
cat <文件全名称> 显示整个文件的内容
版本回退
Git reset --hard head^
在 Git 中, HEAD 表示当前版本, 就是最新提交的版本, 即使用 Git log 打印出来的位于第一位的版本, 上一个版本就是 HEAD^, 上上个版本就是 HEAD^^,
当前向上 100 个可以写成 HEAD~100. 当然, 还有一种方式就是直接使用 commit id 来代替 HEAD^, 比如版本号是 cadab353589f3eef075817b890dafe8b722d802b,
那么就可以直接使用命令:
Git reset --hard cadab353589f 使用前几位表示即可, Git 会自动查找
注: 版本回退以后, 使用 Git log 打印的历史记录都是回退版本之前的数据, 之后的都没有了, 不过放心, Git 总有后悔药可以吃哒
如果命令行窗口没有关闭, 直接去前面找 commit id 即可
如果命令行窗口关闭了, 或者第二天后悔了, 可以进入到该目录下, 使用 Git reflog 命令来查看以前的每一次命令, 可以获得每次提交的 commit id, 就可以版本回退了.
Git reflog 可以查看命令历史, 包含提交的 commit id
版本回退原理
简单讲, 就是说只要进行了代码提交, Git http://lib.csdn.net/base/28 内部都会按照时间节点进行记录, 每条记录都有 commit id 作为唯一标识(就像是链表每个节点都有唯一的地址一样),HEAD 总是指向当前版本(就像指针一样). 所谓的版本回退, 仅仅是讲 Head 从当前版本指向了指定的版本, 然后将工作区的文件也修改了.
工作区和暂存区
Git 和其他版本控制系统的一个不同之处就是有暂存区的概念
工作区(就是电脑里能看到的目录, 比如上面创建的 C:\Android\Git-repositories\new_repository_1 文件夹就是一个工作区.)
版本库 (工作区中有一个隐藏目录. Git, 就是 Git 的版本库, 版本库里存放了很多的东西, 其中最重要的就是 state(或者叫 index) 的暂存区, 还有 Git 为我们自动创建的第一个分支 master, 以及指向 master 的一个指针叫 HEAD.)
前面讲到, 将文件存入到 Git 版本库里, 分两步执行:
第一步: 用 Git add 命令将工作区的修改文件添加到暂存区; (多次操作)
第二步: 用 Git commit 命令将暂存区的所有修改内容提交到当前分支.(事务提交, 包含第一步多次操作, 注意, 不在暂存区的修改不会被 commit)
一旦事务提交之后, 如果对工作区没有做什么修改, 那么工作区就是干净的.
因为创建 Git 版本库的时候, Git 自动创建了一个 master 分支, 所以现在 Git commit 就是往 master 分支上提交事务.
Git 进阶:
- Git pull origin dev(此时, 本地仓库的 dev 分支已经确保是最新的了, 并将远程仓库的 dev 分支最新代码拉下来)
- Git merge dev (将本地 dev 分支合并到自己的分支上)
- Git push origin dev(推送到远程服务器)
- Git remote -v (显示远程分支的名称和 url)
Linux 命令:
pwd 用于显示当前目录
ls -ah 用于显示当前目录下的所有子目录和文件(包含隐藏的)
clear 清屏
exit 退出 Linux 模式
注意: 通过 cmd 进入 Linux 模式, 命令是 adb s4.hell
来源: http://www.bubuko.com/infodetail-3113784.html