git实战-4、常见使用场景

本文深入讲解Git的基本使用,包括理解提交过程,掌握git add的各种用法,如git add-A与git add-u的区别,以及如何通过git mv命令高效修改文件名。同时,探讨了如何回滚代码,强制推送至远程仓库,解决IDEA中分支切换错误,和git revert的原理与应用场景。

git实战-4、基本使用

理解git提交过程

git add 把文件添加到暂存区
git commit 把暂存区添加到版本历史

工作目录
暂存区
版本历史
  • git add -u:将文件的修改、文件的删除,添加到暂存区。
  • git add .:将文件的修改,文件的新建,添加到暂存区。
  • git add -A:将文件的修改,文件的删除,文件的新建,添加到暂存区。等同于git add -all

问题:git add -A相对于git add -u命令的优点?

可以提交所有被删除、被替换、被修改和新增的文件到数据暂存区,而git add -u 只能操作跟踪过的文件

如何通过git修改文件名?

案例:将git库中readme文件名字改为readme.md

[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ mv readme readme.md
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ git status
# On branch master
# Changes not staged for commit:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#	deleted:    readme
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#	readme.md
no changes added to commit (use "git add" and/or "git commit -a")

mv readme readme.md 重命名文件后,通过git status命令查看日志,表明readme文件被删除delete了,还有一个未跟踪untracked的文件.

方法一:

  1. git rm readme
  2. git add readme.md
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ git add readme.md 
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ git rm readme
rm 'readme'
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#	renamed:    readme -> readme.md
#

方法二(推荐):

git mv file1 file2

[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ git mv readme2 readme2.md
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#	renamed:    readme -> readme.md
#	renamed:    readme2 -> readme2.md

如何回滚代码?

Git回滚代码到某个commit
回退命令:

回退到上个版

git reset --hard HEAD^

回退到前3次提交之前,以此类推,回退到n次提交之前

git reset --hard HEAD~3

退到/进到 指定commit的sha码

git reset --hard commit_id

强制推送到远程?

强推到远程:

git push origin HEAD --force

使用git push -f提交更改

切换分支 IDEA中分支切换error: The following untracked working tree files would be overwritten by checkout

在IDEA中进行分支切换时,出现如此错误,导致无法正常切换:error: The following untracked working tree files would be overwritten by checkout
通过错误提示可知,是由于一些untracked working tree files引起的问题。所以只要解决了这些untracked的文件就能解决这个问题。

解决方式:

打开SourceTree通过命令行,进入本地版本仓库目录下,直接执行git clean -d -fx即可。可能很多人都不明白-d,-fx到底是啥意思,其实git clean -d -fx表示:删除 一些 没有 git add 的 文件;

git clean 参数 

-n 显示将要删除的文件和目录;

-x -----删除忽略文件已经对git来说不识别的文件

-d -----删除未被添加到git的路径中的文件

-f -----强制运行

git clean -n

git clean -df

git clean -f

git revert

原理: git revert的作用通过反做创建一个新的版本,这个版本的内容与我们要回退到的目标版本一样,但是HEAD指针是指向这个新生成的版本。
适用场景: 如果我们想恢复之前的某一版本(该版本不是merge类型),但是又想保留该目标版本后面的版本,记录下这整个版本变动流程,就可以用这种方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值