文章目录
一、Git是什么
git是分布式版本控制系统,相比于集中式控制系统svn,cvs,git具有一定的优势,区别在于,使用git时,每个人的电脑都是一个服务器,即使主仓库被删,过去的代码,版本信息也不会丢失,而集中式则是把所有代码放在一个服务器上管理,操作需要服务器支持,服务器一旦丢失,所有数据就都丢失了。
二、git配置
1.用户信息
config:参数是用来配置git环境的
–global:长命令表示配置整个git环境
第一次使用git需要设置用户名和邮箱作为git的标识,用git下载一些远程仓库时需要登陆权限,这时git会使用默认邮箱和用户名,只需我们手动输入密码即可。
用户名配置:
git config --global user.name “你的用户名”
邮箱配置:
git config --global user.email “你的邮箱”
若不配置,登陆时需要手动输入用户名和邮箱,较为麻烦。
三git使用
1.创建本地仓库
操作:在一个空文件夹中打开git后输入git init
效果:初始化当前目录为仓库,初始化后会自动将当前仓库设置为master
初始化后可以在资源管理器中设置显示隐藏文件看到git的配置文件目录,也可以在git中输入is -ah查看隐藏目录
2添加文件到本地仓库
语法:
git add “文件名”:将文件添加到缓存区
git commit :提交到本地仓库
也可使用git add .或者git add --all把当前目录下所有文件添加到缓存区
使用git commit时一般使用git commit -m “注释”
如果不使用-m,会调用终端的注释编辑器让你输入描述信息,较为麻烦。
使用git commit后系统自动生成40位的哈希值,用作id,并把之前git add到缓存区的文件提交到本地仓库中。
3改写提交
输入git commit --amend来改写提交,输入后会进入编辑器页面,按下i可以进入编辑,编辑完成后按下ctrl+o保存即可
4查看历史提交日志
输入git log可以查看已提交的内容以及修改记录,提交时间等。
5查看文件提交后是否改动
我们可以输入git status查看文件是否被改动,以及文件当前状态,是否提交到缓存区等
英文对应:
A:文件未被修改
AM:文件已被修改
Untracked:文件未提交
modified:新建文件,尚未提交
已提交文件不会再这里显示。
另外,git remote可以查询仓库信息。
6工作区与缓存区概念
git下有一个缓存区的概念,缓存区中储存了git add命令提交的文件描述信息,位于git下的index文件中。
工作区则是当前工作目录,使用git commit后,当前工作区会成为最新的仓库提交版本。
7git回滚以前版本
语法:git reset --hard/soft/mixed +id
git reset --soft id:头指针恢复,其他暂存区,工作区文件不变
git reset --mixed id:头恢复掉,已add到暂存区的内容也会丢失,工作空间的代码等不变。
git reset --hard id:全部恢复到以前状态
8缓存区内容修改
使用git add添加到缓存区的文件若又进行修改,则需要再次进行git add操作,否则提交的是修改前的内容。
git add 文件名
vim 文件名
修改内容xxxxx
按esc后输入:wq即可。
再进行git add
git commit即可
9文件内容撤回到上一次改动
git checkout – 文件名,checkout具有切换分支的功能,使用git checkout – file可以回到上个版本,但是不可迭代使用,使用liangcigit checkout – file来回到前个版本是行不通的。
10查看单个文件过去版本
可以使用git log 文件名,从而查看该文件有多少个版本可以回滚,然后使用上面提到的git reset命令就行了。
11删除文件
命令:git rm 文件名
12查看提交记录
命令:git reflog,该命令可以查看当前版本库的所有提交历史。
git基本组成
Workspace
这是开发者工作区,也是当前写代码的目录,一般保存最新仓库代码。
Index
缓存区,位于.git目录中,用来存放临时操作,使用git add git rm都是把文件交到了缓存区,可以撤销。
Repository
仓库区,提交的文件都在这里,git可以保存好每个版本,放在仓库区
Remote
远程仓库,在其他电脑上的仓库,也叫服务器仓库。
13恢复git rm的文件
使用条件:用git rm删除,而且没有commit
git checkout 文件名,可以取消操作,文件即可恢复
git分支
1创建分支
命令:git branch -b 分支名
创建分支后会自动切换过去,
可以使用git branch查看当前在哪个分支,即head所指向的分支。
也可以使用git branch dev或git checkout dev
创建分支。
2分支切换
命令:git checkout 要切回的分支名
3分支合并
我们新建完分支二并完成工作后,若要把分支二提交到master仓库,只需先切换到master再合并分支
命令:git check master
git merge 分支二名
## git删除分支
删除本地分支:git branch -D 分支名
删除远程分支:git push orign --delete
## 修改分支名
git branch 分支名 新分支名
## 保存当前分支工作
git stash
保存后可以用git stash list 查看当前工作状态。
## 拉取远程所有分支
git fetch
总结
git在多人开发中的作中十分强大,团队开发中,一般有一个master,任何人可以从master中拉取代码,修改bug如果修改错了或者误删,可以重新从master中拉取一份,学会git几乎是大部分程序员的必修课。