冲突解决,代码备份,版本还原,协同开发,权限管理,代码审查,版本记录,分支管理,历史追查。
- Workspace:工作区
- Index / Stage:暂存区
- Repository:仓库区(或本地仓库)
- Remote:远程仓库
git config --global user.name "用户名"
git config --global user.email "用户邮箱"
--global表示全局属性,所有的git项目都会公用属性
查看配置信息:git config --list
如果不太熟悉命令行的方式,也可以在c盘下的user文件夹下的.gitconfig文件里面进行配置
在当前登录的系统用户路径下,生成.gitconfig隐含文件,里面可以看到刚刚设置的信息,如果不用命令设置,也可以直接打开文件进行配置。
工作区:在你电脑本地硬盘目录,一般是项目当前目录
版本库:工作区有个隐藏目录.git,它就是git的本地版本库
暂存区:一般存放在“git目录”下的index文件(.git/index)中,所以我们把暂存区有时也叫做索引(index)
分支:git为我们自动创建的第一个分支是master,以及指向master的一个指针叫HEAD
第一步 用"git add"把文件纳入git管理,实际上就是把本地文件修改添加到暂存区
第二步 用"git commit"更改提交,实际上就是把暂存区的所有内容提交到当前分支
用git diff HEAD -- filename 命令可以查看工作区和暂存区里面最新版本的区别
新建过撤销未add:git checkout -- 文件名
撤销已add未commit:先git reset HEAD 文件名,再git checkout -- 文件名
撤销已add已commit:git reset -- hard HEAD^
git init:初始化本地库
git config --global user.name 用户名:设置用户签名的用户名部分
git config --global user.email 邮箱:设置用户签名的邮箱部分
git status:查看本地库状态
git add用户名:添加到本地库
git commit -m "日志信息"文件名:提交到本地库
git reflog:查看历史记录
git reset --hard 版本号:版本穿梭
$ git clone [url]:从远程仓库克隆代码
touch hello.txt :新建一个文件
vim hello.txt:给文件里面添加内容
摁着esc !输入命令 q:退出
qw:写入且退出
q!强制退出
git status: on branch master:在主干分支上
untacked files:表示未跟踪状态
untracked:未跟踪(未被纳入版本控制)
tracked:已跟踪(被纳入版本控制)
unmodified:未修改状态
modified:已修改状态
staged:已暂存状态
红色表示新建文件或者新修改的文件在工作区
绿色表示文件子啊暂存区
git add <文件名>:只增加到栈空间(index文件)中,还没有添加到本地库中,初始化是没有这个index文件、这还是一个新文件,需要将栈空间文件提交到本地仓库
git add . 添加项目中的所有文件
git add hello.txt:添加未存在文件会出错
git reset <文件名>:撤销暂存区的文件
git commit:执行命令时需要填写提交日志,进入编辑 模式
git commit -m:“注释内容”,
git commit -am “注释内容”:代码编辑完成后即可进行add和commit操作
git log:
git log a.txt:查看文件日志(查看所有日志或某个日志)
q退出
git log --pretty=oneline:如果日志很多,可以在一行显示
git reflog:查看历史操作
git reset --hard HEAD^:一次回退一个版本,一个^代表一个版本数量
git reset --hard HEAD~n:回退n次操作
git reflog a.txt:查看历史操作
git reset --hard 版本号:回退最新的版本
正常来讲默认的分支是master
git branch 分支名 :创建分支
git branch -v:查看分支
git checkout 分支名:切换分支
git merge分支名:把指定的分支合并到当前分支上
合并分支时,两个分支在同一文件的同一位置有两套完全不同的修改,git无法替我们决定使用哪个,必须人为决定新代码内容
合并分支就是为了更好地代码控制。