Git 是 Linux的创始人Linus Torvalds开源的一款分布式版本控制系统,以帮助开发者更好的对项目进行版本管理。
一、git版本控制的使用
1、基本设置:
安装好git程序后,首先我们对 Git进行用户名和邮箱设置,请参照下面格式,替换为你自己常用的用户名和邮箱来完成设置:
$
gitconfig --global user.name
"Your Name"
$
gitconfig --global user.email you@example.com
解释: --global
选项代表对 Git 进行全局设置。
2、使用方法:
对于有经验的开发者来说,在他每次新建完开发项目的时候,首先要做的第一件事就是将自己的项目纳入到 Git代码版本管理中,完成这个操作一般需要以下这几个步骤:
1、对 Git进行初始化:
$
cd~/Code/Laravel
$
gitinit
2、将项目所有文件纳入到 Git中:
$
gitadd -A
我们可以通过在 .gitignore
文件中进行设置,来选择忽略掉一些我们不想纳入到 Git 版本管理中的文件(如缓存文件)。因此上面描述的『所有文件』指的是没在 .gitignore
中被忽略的文件。
3、检查 Git状态:
$
gitstatus
上面命令将会向你输出存放在 Git暂存区的文件,这意味着这些文件还未真正提交到 Git中。
4、保留改动并提交:
$
gitcommit -m
"Initial commit"
上面这行命令会将暂存区的文件都提交到 Git,-m
选项后面带的参数表示本次提交的简单描述。
5、查看历史提交记录:
$
gitlog
commit 4d8896a697674861adec7e2ba8b7804412c0678d
Author: Aufree
<summer@yousails.com
>
Date: Wed Sep 7 07:54:11 2016 +0800
Initial commit
Author
项的内容就是我们上面设置的用户信息。
按
q
可退出查看。
如果不小心删除 composer.json
文件:
$
rmcomposer.json
$ ll
使用 ll
打印出文件目录列表时,能看到 composer.json
文件已被成功移除。
查看 Git 状态:
$
gitstatus
On branch master
Changes not staged
forcommit:
(
use
"git add/rm <file>..."to update what will be committed
)
(
use
"git checkout -- <file>..."to discard changes
inworking directory
)
deleted: composer.json
no changes added to commit
(use
"git add"and/or
"git commit -a")
能看到有相关提示显示 composer.json
文件已被删除,这时你可以选择将删除的文件进行恢复或提交。
下面我们使用 Git 进行恢复被删除文件:
$
gitcheckout -f
$ ll
这时能看到 composer.json
文件已成功恢复。git checkout -f
的作用是将在暂存区的更改文件进行强制撤销。
GitHub 是目前全球最大的代码托管平台,许多非常著名的项目如 Linux、Swift、Laravel 等都托管在 GitHub 上。开发者们利用 GitHub来进行团队协作开发,查阅或收藏别人开源项目的优秀代码,针对某个 Bug进行技术讨论等。如果要使用GitHub,你需要完成下面这几步操作:
1. 注册 GitHub账号#
如果你还没有 GitHub 账号的话,请先 注册 。
2. 为 GitHub账号设置 SSH Key#
出于安全考虑,Github 服务器和我们本地的通讯要求使用 SSH Key来验证。在前面『环境部署』的章节中,我们已经在主机中生成过 SSH Key,并且 Homestead在初始化时,通过Homestaed.yaml文件中的 keys
选项已经把主机中的 SSH Key 私钥复制到虚拟机中,所以这里我们无需再次生成 SSH Key。
接下来将 SSH Key 添加到 ssh-agent 中:
$
eval`ssh-agent -s`
$ ssh-add ~/.ssh/id_rsa
我们再回到 主机中 打印出公钥 id_rsa.pub
文件里的内容,并把输出的内容复制到剪贴板里:
>cat
~/.ssh
/id_rsa
.pub
最后我们需要将公钥添加到 GitHub账号,先打开 Github SSH令牌管理页面,然后把你刚刚复制的令牌按照下图示例添加:
3. 提交代码到 Github#
在配置完 GitHub 账号之后,我们便可以开始在上面存放项目代码了。首先 新建一个 GitHub仓库,取名为hello_laravel
,填上 Description
项目描述,Initialize thisrepository with a README
这一项无需勾选,因为 Laravel已默认帮我们创建好了 readme.md
文件。
创建完成之后,使用以下命令将代码上传到 GitHub上(将 your_username替换为你自己的 GitHub用户名):
$
gitremote add origin git@github.com:your_username/hello_laravel.git
$
gitpush -u origin master
提示:如果
gitremote add origin git@github.com:your_username/hello_laravel.git 这里输入了错误的用户,可以git remote rm origin
至此,项目已成功托管到 GitHub上。
后面我们如果对本地代码进行了改动,只需运行这 3条命令即可将代码推送到安全可靠的 GitHub上:
1、保存到暂存区:
$
gitadd -A
2、输入描述信息并提交到本地的 Git:
$
gitcommit -m
"Say something"
3、将代码推送到 GitHub:
$
gitpush
-------------------------------------------------------------------------------------------------------------------------------------
git checkout .
#本地所有修改的。没有的提交的,都返回到原来的状态
git stash
#把所有没有提交的修改暂存到stash里面。可用git stash pop回复。
git reset --hard HASH
#返回到某个节点,不保留修改。
git reset --soft HASH
#返回到某个节点。保留修改
git status #查看有哪些文件添加
查看版本修改了哪些文件,去掉--stat 显示修改详情
git show Hash1 --stat
或者
查看两次提交间修改文件
git diff Hash1 Hash2 --stat
直接在项目中删除对应的文件