Git的常用操作(本地常用操作)

基本概念

  • 工作区
    电脑中的实际文件
  • 暂存区(stage)
    git中的缓存
  • 版本库
    文件一旦提交到版本库,就意味着创建了一个还原点

创建Git仓库

  • git init
mkdir 仓库名
pwd #查看当前路径  
cd 仓库名
git init #初始化仓库

提交版本变动

  • git add
git add readme.txt  #图省事可以git add . 添加全部文件

把工作区的文件改动添加到暂存区,改动是指当前工作区与最后一次提交的版本作比较

  • git commit -m 'xxx'
git commit -m 'wrote a readme file' #把暂存区的文件提交到仓库

类似于游戏存档,注意是把暂存区的改动添加到了版本库,而暂存区是依靠git add来从工作区添加的

查看状态

git status 查看当前仓库的状态
git diff 文件名 查看某个文件的改动
git log 查看从最近到最远提交的日志(存档点)

版本回退

参数说明:
HEAD:

HEAD代表当前版本(最后一次提交的版本),HEAD^代表上一个版本(按照log顺序),依次类推HEAD^^,为了避免版本数过多,也可以用数字表示选则回顾前多少个版本,比如回顾3个版本,HEAD~3(等价于HEAD^^^

回滚命令:
git reset --hard HEAD
类似于相对路径
git reset --hard xxx(log中的commit id)
类似于绝对路径(xxx不用写全,写前几位就可以)
注意git reset --hard xxx中的--hard是没有空格的

恢复命令:
回滚到之前的版本,后悔了,想复原
思路:查找到对应版本的commit id,但是用git log不会看到当前版本之后的版本,所以要用 git reflog命令

撤销修改

与版本回退的区别是,版本回退恢复的是所有文件,而撤销修改只是撤销掉一部分的修改

  • git checkout -- filename
    注意checkout后面一定要有-- 文件名,否则是切换分支。
    效果:
    1.工作区的文件未添加到暂存区
    效果同版本回退一样
    2.工作区的文件已添加到暂存区
    撤销修改到最后一次添加暂存区的状态
    修改了工作区的内容
  • git reset HEAD 文件名
    清除指定文件在暂存区中的内容
    只是清空了暂存区中某个指定的文件,工作区没有变动,修改工作区要靠git checkout -- filename

问题:若文件已经add到暂存区,想撤销修改到add之前该怎么办?
思路:先清空该文件的暂存区,再撤销工作区的修改
解决:git reset HEAD 文件名 把指定文件的暂存区中的修改全部撤销,然后git checkout -- 文件名,使工作区的文件恢复到最近一次commitadd(然而暂存区已通过git reset HEAD 文件名清楚了)的状态

git删除

git rm 文件名
git commit -m 'xxx'
删除版本库中的某个文件
git rm其实与rm是等价的

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容