git add 撤销_Git通俗教程

60be388f965bfe0949e6742f58d47026.png

git是程序员必备技能之一,学会git,再也不怕瞎**乱改代码,再也不会忘记上次修改了什么地方,用git,快乐编程。

Git前言

Git只记录每次修改的内容,即当前提交的内容和当前的内容的差值,这也是Git比其它版本控制系统优秀的地方。

新建仓库

这里的仓库指本地仓库,至于远程仓库的新建诸如Github,全界面操作,简单易懂,只需轻轻点几下(百度教程一大堆,不会编程的童鞋也能看懂)。

你可以新建一个目录来当作本地仓库,也可以在你已有的工程目录直接新建仓库,但是一般情况下,我们会新建一个目录。

$ git init

执行上述命令就会在当前目录新建一个本地仓库,并且输出

Initialized empty Git repository in E:/Projects/testgit/.git/

但此时细心的你会发现,目录下什么也没有,其实它已经生成了一个.git目录,只不过它是隐藏文件,所以现在你可能有疑问,这个.git目录就是我们的仓库吗?它里面保存的是版本控制的相关文件,反正不要人为地去修改它,否则的话会导致你的本地仓库被破坏。

修改工作区

这里的修改包括新添加文件和修改原有文件内容。而修改文件名,会被当作一次文件删除和文件添加。 我们现在仓库中新建一个test.txt文件,在里面写上

这是仓库中的第一个文件,用来测试添加文件

此时使用git status来查看仓库的状态,会发现,git检测到新建文件了,但是并不知道你里面有什么内容,所以它是Untracked状态。

使用git add test.txt将test.txt从提交到暂存区,此时我们再使用git status来查看仓库的状态

$ git statusOn branch masterNo commits yetChanges to be committed: (use "git rm --cached ..." to unstage) new file: test.txt

此时说明test.txt已经被git追踪,git检测到test.txt是新添加的文件

我们使用git commit -m "增加一个新文件"来将暂存区提提交到master分支。

$ git commit -m "增加一个新文件"[master (root-commit) db05952] 增加一个新文件 1 file changed, 1 insertion(+) create mode 100644 test.txt

此时我们再使用git status来查看仓库的状态

$ git statusOn branch masternothing to commit, working tree clean test.txt

发现当我们执行commit指令时,暂存区在提交到master分支时自身也会清空。

版本回退

修改test.txt

这是仓库中的第一个文件,用来测试添加文件这是我新添加的内容,用来测试版本回退

然后我们再对test.txt执行add和commit操作,这时,你突然发现上次添加的那句话不太正确,需要回退到之前的版本,当然这对于(删除某些内容)更能体现版本回退的用处。

此时你可以使用git log命令查看你的commit记录

$ git logcommit 875449ad625b785cc7cd03fe5f48c930cf2b32c6 (HEAD -> master)Author: ********Date: ******** 测试版本回退commit db05952ae47fa8f897d8cf52488c350fd8e765c8Author: ********Date: ******** 增加一个新文件

可以发现,之前的commit操作都有记录,这里回退有两种方法

  • git reset --hard commit-id
  • git reset --hard HEAD~回退的次数

在git log输出的信息中,有一项需要我们注意commit加一长串数字,这个叫做commit id,用来唯一指示一次commit操作,我们可以凭借commit id来回退到指定版本,当然你也可以使用HEAD~回退的次数来将HEAD指针往回移动,比如HEAD~100就是回退到前第100次的commit操作(可能比较拗口,比如这里HEAD~1表示回退到“增加一个新文件”那次操作,因为你当前处于“测试版本回退”)

$ git reset --hard HEAD~1HEAD is now at db05952 增加一个新文件$ git reset --hard 875449HEAD is now at 875449a 测试版本回退

命令总结

新建仓库

  • git init:初始化本地仓库
  • git clone https://www.github.com/***:克隆远程仓库

设置用户名和邮箱

  • git config --global user.name "Your Name":设置用户名
  • git config --global user.email "email@example.com":设置邮箱

提交

  • git add .:将工作区的文件全部提交到暂存区
  • git add file:将单独的文件提交到暂存区
  • git commit -m "更新信息":将暂存区提交到本地仓库分支

撤销操作

  • git checkout -- file:撤销在工作区上的修改,add前。
  • git reset HEAD file:撤销暂存区的操作,add后、commit前。
  • git reset --hard commit-id/HEAD~回退的次数:在commit之后又想取消本次的修改,直接进行版本回退,commit后。

同步远程分支到本地分支

  • git pull origin master:将远程origin仓库的master分支下载到本地分支,并进行合并。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值