git的基本使用
Git 安装配置
在使用Git前我们需要先安装 Git。Git 目前支持 Linux/Unix、Solaris、Mac和 Windows 平台上运行。
Git 各平台安装包下载地址为:http://git-scm.com/downloads
Debian/Ubuntu
Debian/Ubuntu Git 安装命令为:
$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev
$ apt-get install git-core
$ git --version
git version 1.8.1.2
Centos/RedHat
如果你使用的系统是 Centos/RedHat 安装命令为:
$ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
$ yum -y install git-core
$ git --version
git version 1.7.1
Windows 平台上安装
在 Windows 平台上安装 Git 同样轻松,有个叫做 msysGit 的项目提供了安装包,可以到 GitHub 的页面上下载 exe 安装文件并运行:
安装包下载地址:http://msysgit.github.io/完成安装之后,就可以使用命令行的 git 工具(已经自带了 ssh 客户端)了,另外还有一个图形界面的 Git 项目管理工具。
在开始菜单里找到"Git"->“Git Bash”,会弹出 Git 命令窗口,你可以在改窗口进行 Git 操作。
git的基本操作
用户信息
配置个人的用户名称和电子邮件地址:
$ git config --global user.name 小广
$ git config --global user.email 1549380550@qq.com
如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。
如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。
查看配置信息
要检查已有的配置信息,可以使用 git config --list 命令:
$ git config --list
user.name=小广
user.email=1549380550@qq.com
有时候会看到重复的变量名,那就说明它们来自不同的配置文件(比如 /etc/gitconfig 和 ~/.gitconfig),不过最终 Git 实际采用的是最后一个。
也可以直接查阅某个环境变量的设定,只要把特定的名字跟在后面即可,像这样:
$ git config user.name
小广
获取与创建项目命令
git init
用 git init 在目录中创建新的 Git 仓库。 你可以在任何时候、任何目录中这么做,完全是本地化的。
在目录中执行 git init,就可以创建一个 Git 仓库了。比如我们创建 shouce.rencc 项目:
$ git init [目录名]
现在你可以看到在你的项目目录中有个 .git 的子目录。 这就是你的 Git 仓库了,所有有关你的此项目的快照数据都存放在这里。
ls -a
. … .git
git clone
使用 git clone 拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改。
如果你需要与他人合作一个项目,或者想要复制一个项目,看看代码,你就可以克隆那个项目。 执行命令:
git clone [url]
[url] 为你想要复制的项目地址(可以是github地址)。
git remove
连接远程仓库
git remote add origin url
git pull
将代码推送到远程仓库
git pull origin master
基本快照
Git 的工作就是创建和保存你的项目的快照及与之后的快照进行对比。本章将对有关创建与提交你的项目的快照的命令作介绍。
git add
git add 命令可将该文件添加到缓存,如我们添加以下两个文件:
git add README hello.c
现在我们再执行 git status,就可以看到这两个文件已经加上去了。
$ git status -s
A README
A hello.c
现在我们改个文件,再执行一下 git status:
$ vim README
$ git status -s
AM README
A hello.c
“AM” 状态的意思是,这个文件在我们将它添加到缓存之后又有改动。改动后我们在执行 git add 命令将其添加到缓存中:
$ git add .
$ git status -s
A README
A hello.c
新项目中,添加所有文件很普遍,可以在当前工作目录执行命令:git add .。
现在我们改个文件,再执行一下 git status:
1.$ vim README
2.$ git status -s
3.AM README
4.A hello.php
“AM” 状态的意思是,这个文件在我们将它添加到缓存之后又有改动。改动后我们在执行 git add 命令将其添加到缓存中:
1.$ git add .
2.$ git status -s
3.A README
4.A hello.php
当你要将你的修改包含在即将提交的快照里的时候,需要执行 git add。
git status
git status 以查看在你上次提交之后是否有修改。
git commit
git commit -m ‘版本描述’
如果你没有设置 -m 选项,Git 会尝试为你打开一个编辑器以填写提交信息。 如果 Git 在你对它的配置中找不到相关信息,默认会打开 vim。屏幕会像这样:
如果你觉得 git add 提交缓存的流程太过繁琐,Git 也允许你用 -a 选项跳过这一步。命令格式如下:
git commit -am ‘版本描述’
查看历史版本
git log 或者 git reflog
过滤查看日志
git log –p
退出按【q】键
ctrl+f向下分页
ctrl+b 向上分页
显示指定日期之后的日志 git log --after '2021-9-6'
显示指定日期之前的日志 git log --before '2021-9-6'
指定显示指定开发者的日志 git log --author 'lisi'
回退版本
-
方案一:
-
HEAD
表示当前最新版本 -
HEAD^
表示当前最新版本的前一个版本 -
HEAD^^
表示当前最新版本的前两个版本,以此类推… -
HEAD~1
表示当前最新版本的前一个版本 -
HEAD~10
表示当前最新版本的前10个版本,以此类推…git reset --hard HEAD^
-
方案二:当版本非常多时可选择的方案
-
通过每个版本的版本号回退到指定版本
git reset --hard 版本号
取消暂存
git reset head
git reset <file> :从暂存区恢复到工作文件
git reset -- :从暂存区恢复到工作文件
删除文件
git rm
git rm 将文件从缓存区中移除。
如我们删除 hello.c文件:
$ git rm hello.c
rm ‘hello.c’
默认情况下,git rm file 会将文件从缓存区和你的硬盘中(工作目录)删除。 如果要在工作目录中留着该文件,可以使用命令:
git rm --cached。
git checkout
另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:
$ git checkout --hello.c
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。