一、git简介
- git采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制
- 什么是裸代码库?只有历史记录和索引,没有实际以文件形式存在的代码。那些代码都以二进制的形式存在git自己的数据库里
二、git下载和配置
下面针对linux进行说明:
在线安装:yum install git-core
配置:
git config --global user.name "Your name"
git config --global user.email "your email"
三、git的工作原理
2. 本地仓库由三棵“树”组成。
第一个是你的 工作目录,它持有实际文件;
第二个是 缓存区(Index),它像个缓存区域,临时保存你的改动;
最后是 HEAD,指向你最近一次提交后的结果。
3. 最后要将修改推送到远端仓库,需要执行git push ...
四、git常用命令
1. 创建新仓库
1. 新建文件夹repo, 打开,执行git init
2. 新建文件Readme.txt, 执行git add Readme.txt
git commit -a -m "add file Readme.txt"
备注:如果不执行第二个步骤,git clone的时候,会有如下信息:
fatal: cannot clone empty repository
2. 克隆本地仓库
1. 创建文件夹git_local, 打开,执行
git clone git clone /home/lizj/0000_git/git_test/repo
2. 如果仓库在远端,假设是git的源代码地址,那么执行
git clone git://git.kernel.org/pub/scm/git/git.git
3. 添加与提交:git_local/repo目录下,新建文件test.txt,写入“123”,然后执行
1. git add test.txt
2. git commit -m "add file test.txt"
4. 推送仓库
git push origin master (master 可以换成你想要推送的任何分支)
5. 更新仓库
git pull
6. 分支
1. 创建一个叫做“feature_x”的分支,并切换过去
git checkout -b feature_x
2. 切换回主分支:
git checkout master
3. 再把新建的分支删掉
git branch -d feature_x
7. 恢复改动
1. 恢复被删除的文件
git checkout file (恢复工作目录的内容成HEAD的内容,INDEX不会改变)
2. git reset用于撤销未被提交到远端的改动
--soft: 工作目录和index都不会被改变, HEAD被改变
--mixed:工作目录不会改变,index和HEAD被改变
--hard:工作目录、index和HEAD都会被改变
3. git reset file (恢复index的内容成HEAD的内容,工作目录不会改变)
4. git revert 命令通过创建一次新的 commit 来撤销一次 commit 所做出的修改
8. 信息查看
1. 查看修改:
git diff (查看文件内容的修改,新增加的文件采用git status查看)
2. 查看状况:
git status
3. 查看历史:
git log
4. 查看远程仓库地址
git remote -v
5. 查看远程分支
git branch -r
6.查看某次commit的修改内容
git show <commit-hash-id>
7.查看某个文件的修改历史
git log -p <filename>
8.查看最近2次的更新内容
git log -p -2