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的文件.
方法一:
- git rm readme
- 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类型),但是又想保留该目标版本后面的版本,记录下这整个版本变动流程,就可以用这种方法。

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

4万+

被折叠的 条评论
为什么被折叠?



