linux命令一些:
cat 查看文件的内容
ll -lA 查看隐藏文件
第一步:本地库初始化
git init
备注:.git目录是隐藏文件,存放的是本地库相关的子目录和文件,不要删除,也不要修改
第二步:设置签名(作用:区分不同的开发人员)
用户名:jack
Email地址:123@qq.com
备注:这里设置的签名和远程库(代码托管中心)的账号、密码没有任何关系
项目级别:git config
git config user.name jack
git config user.email 123@qq.com
系统用户级别:git config --global
git config --global user.name Tom
git config --global user.email 333@qq.com
项目级别信息保存的位置:./.git/config 文件
系统用户级别保存的位置:~/.gitconfig 文件
第三步:添加提交及查看状态
状态查看操作(查看工作区、暂存区状态)
git status
添加操作(将工作区的新建/修改添加到暂存区)
git add [file name]
提交操作(将暂存区的内容提交到本地库)
git commit -m "commit message" [file name]
查看状态: git status
文件在开发区,文件名为红色
文件在暂存区,文件名为绿色
提交到暂存区:git add xxxxx
从暂存区撤回到开发区:git rm --cached xxxxx
提交到本地库:git commit xxxxx 并在弹出的vim里面输入提交的注释,这次提交了什么
在vim显示行号::set nu
方便快速注释提交本地库:git commit -m "提交文件" xxxxx
第四步:查看历史记录、实现版本的更改[前进和后退]
查看历史记录的几种方式:
git log
git log --pretty=oneline
git log --oneline
git reflog (推荐使用这个)
查看记录:git log
以漂亮的格式显示记录:git log --pretty=oneline
以漂亮的格式显示记录(hash值只显示一部分):git log --oneline
显示步骤的记录:git reflog
HEAD代表Git的指针
基于索引值操作实现版本更改(最好的方式实现版本的更换)
git reset --hard [索引值]
使用^符号(只能后退)
git reset --hard HEAD^ (1个^后退1个,2个^后退2个)
使用~符号(只能后退)
git reset --hard HEAD~3 (在~后天添加数字3,表示后退3步)
第五步:reset命令三个参数hard、soft、mixed的区别
--soft参数:在本地库移动HEAD指针
--mixed参数:在本地库移动HEAD指针,重置暂存区
--hard参数:在本地库移动HEAD指针,重置暂存区、重置工作区(推荐用这个)
第六步:永久删除文件后找回
在工作区删除文件:rm [文件名]
删除提交到暂存区:git add [文件名]
删除提交到本地库:git commit -m "xxxxx" [文件名]
以上操作,在这个版本里面文件被删除了,在上一个版本这个文件没有被删除,更换到其他版本就可以看到文件
第七步:添加到暂存区的删除文件找回
将本地库进行刷新:git reset --hard HEAD
前提:删除前,文件存在时的状态提交到了本地库
操作:git reset --hard [指针位置]
删除操作已经提交到本地库,指针位置指向历史记录
第八步:比较文件
git diff [文件名] 将工作区的文件和暂存区进行比较
git diff HEAD [文件名] 将工作区中的文件和本地库历史记录比较
git diff HEAD^ [文件名] 将工作区中的文件和本地库历史记录比较
第九步:分支操作(重点)
查看分支: git branch -v
创建分支: git branch one
切换分支: git checkout [分支名]
合并分支:
1、切换到接受修改的分支上(被合并,增加新内容)
2、执行merge命令
举例:将一个分支合并到master上面
a、先将分支切换到master上面:git checkout master
b、执行merge命令:git merge [有新内容分支名]
解决冲突:
冲突的表现如下:
<<<<<<<<<HEAD
表示当前分支的内容
==============
另一分支的内容
>>>>>>>>>>>>>>master
1、将特殊符号删除,跟另一分支的作者进行讨论,编辑到满意为止
2、文件修改后,退出
3、git add [文件名]
4、git commit -m "解决冲突" (备注:此时commit一定不带文件名)