一、下载安装git
自行百度下载安装!!!
二、初次使用配置
在git cmd中依次输入如下命令:
git config --glabal user.name "你的用户名(不要中文)"
git config --glabal user.email "你的邮箱"
三、简单命令
(一)两步将工作目录里的文件放到Git仓库
git add 文件名git commit -m "你对这次提交的备注,方便查看"
(二)查看git里的文件状态
`git status`
(三)查看提交日志
` git log`:基本形式
git log --oneline:把每一个提交压缩到了一行中。它默认只显示提交ID和提交信息的第一行
git log --decorate:很多时候,知道每个提交关联的分支或者标签很有用。--decorate标记让git log显示指向这个提交的所有引用(比如说分支、标签等)。
git log --graph:绘制一个ASCII图像来展示提交历史的分支结构。它经常和--oneline和--decorate两个选项一起使用,这样会更容易查看哪个提交属于哪个
git reflog :查看所有历史提交
(四)reset和checkout
注意:这个命令没那么简单!仔细品味
1)reset
三种操作:(ps:下面操作中HEAD后面的波浪线表示该仓库的上一个版本(这里的版本也称作快照),两个波浪线表示现在HEAD指向的版本的前两个版本,如果是前n个版本可以写作HEAD~n)
-
git reset --soft HEAD~- 执行该操作后: - 移动HEAD的指向,将其指向上一个版本
-
git reset --mixed HEAD~- 执行该操作后:
- 移动HEAD的指向,将其指向上一个快照
- 将HEAD移动后指向的版本内容回滚到暂存区域
- 执行该操作后:
-
git reset --hard HEAD~(注意危险:该操作会将项目目录区域下的文件覆盖掉,本地的文件可能丢失,谨慎操作!)
- 执行该操作后:
- 移动HEAD的指向,将其指向前一个版本快照
- 将HEAD移动后指向的版本快照回滚到暂存区域
- 将暂存区域的文件回滚到项目目录区域(万分注意:这里这步是会覆盖项目文件的)
- 执行该操作后:
2)checkout
-
将版本快照滚到工作目录和暂存区域里去
git checkout 版本号 -
将暂存区域里的东西回滚到工作目录里来
git checkout单个文件:git checkout 文件名
总结:
--soft、--mixed、--hard分别回滚一级二级三级,程度递增,特别hard会回滚到项目目录覆盖到本地,需要注意- 默认是
--mixed reset还可以回滚到特定的版本快照,只需要快照的id即可,即版本的hash值,hash值可以用git log查看,git reset 版本id,例如:git reset bc57ccd(不用全部,前几位能够定位即可)reset还可以回滚单个文件,git reset版本快照 文件名或者路径,例如:git reset bc57ccd HEADME.mdreset还可以往前滚,如果你往后滚了,HEAD指针指向了旧的版本快照,那么你只要找到你要回滚的之前的新提交的版本快照id就可以,而查看快照id可以用git reflog查看。
(五)对比文件
(1)比较暂存区域与工作目录
git diff
对比文件较多时,可以操作移动,简单操作如下:
- 按键盘上的
j表示向下移动一行 k向上移动一行f向下翻一页b向上翻一页d向下移动半页u向上移动半页g跳转到第一行G跳转到最后一行行数 g例如3 g跳到第三行/搜索词从上往下搜索该词语?搜索词从下往上搜索该词语h帮助窗口
(2)比较仓库里的两个版本
git diff 版本号1 版本号2
(3)比较当前工作目录和仓库里的版本快照
git diff 版本号
另外:当前工作目录和最新的仓库版本,即HEAD所指的版本比较
git diff HEAD
(4)比较暂存区域与仓库
1.仓库最新的版本快照与暂存区文件比较
git diff --cached
2.指定仓库的一个版本快照与暂存区文件比较
git diff --cached 版本号
(六)修改
(1)修改提交说明
如果你想改变之前的提交说明,那么就
git commit --amend
或者直接
git commit --amend -m "你改变后的提交说明"
(2)删除文件
-
git rm 文件名:删除暂存区与工作目录里的该文件,仓库里的不会删除,如果想删除仓库里的请回滚 -
git rm -f 文件名:如果暂存区与工作目录里的文件出现同名不同内容的情况,用上面那种就会提示你有情况了,你可以用该命令强制一起删除 -
git rm --cached 文件名:只删除暂存区的文件而不删除工作目录下的文件
(3)文件重命名
git mv 原文件名 新文件名
四、分支
关于什么是git分支,他有什么优点,为什么要创建分支,自行百度
(一)创建分支
git branch 分支名称
(二)切换分支
把HEAD指向的分支切换到你需要的分支上来
git checkout 分支名
【偷懒】创建新分支并且切换到新分支里去,连续做两步
git checkout -b 分支名
(三)合并分支
把别处的分支合并到你现在HEAD所指向的分支上来
git merge 分支名
(四)删除分支
git branch -d 分支名
或者写两个小横线的全名
git branch --delete 分支名
(五)匿名分支
git checkout HEAD~
HEAD处于游离状态,你可以对这个创建的匿名分支作实验性操作,当HEAD回到正常分支时匿名分支会销毁