git是一个分布式的版本控制器。代码分布在所有的参与者的电脑上。
而svn等是集中式的,也就是所有的代码都集中在一台中央服务器上面。
git 的优秀之处还在于它实现的是一个对与修改的跟踪。
ubuntu上直接apt-get就可以安装,安装完成之后进行一个简单的配置:
在本地计算机上设置全局的用户名与密码:
git config --global user.name "Your git config --global user.email "email@example.com"
# --global 就是全局的意思。本地所有的代码仓库都会使用这个用户名与密码。
- 建立一个git的代码仓库:
$ mkdir git_ctr $ cd git_ctr $ pwd /home/dog/git_ctr
接着:
git init
使用ls -ah 命令可以看到在我们的仓库目录下面多了个版本控制文件, .git
这个版本库里面有暂存区,和一个建立唯一的master 分支
- 添加文件
git add git commit -m "添加文件的说明"
查看文件的改动,没有进行commit操作时:
git status git diff HEAD@{数字代码} #diff是difference 的缩写。也用于未commit时查看文本变化
{数字代码} 使用git reflog 可以查看。
- 修改文件
git add [修改了的文件名] git commit "修改说明"
- 查看提交记录
git log #可以添加 --pretty=oneline,使每条修改信息显示一行。
- 回退到之前版本
git reset --hard HEAD^ #HEAD表示当前版本,相当于是一个指针。 ^表示前一个版本,HEAD~100表示前100个版本 git reset --hard 3628164 #数字代表commit ID 也就是版本号,使用这个可以回退或者前进到任意的版本,只要知道版本号 git reflog #记录了每一次命令的操作。
- 撤销修改
git checkout -- file #删除工作区的修改。实质上是用版本库里的文件代替工作区的文件。 git reset HEAD file #删除暂存区的修改。
- 删除文件
首先是在文件夹删除,使用rm 命令即可。再在版本库里面将其删除:
git rm {文件名} git commit -m "说明"
删除错误的话,使用:
git checkout -- filename #删除工作区的修改,回到stage,暂存区的修改?
在一个已有的代码文件夹中添加git管理:
git init git add . git commit -m "Initial commit"