对于某一个文件,Git系统也会维护一个commit的提交链吗

孙大诚_SunRobin 2021-01-30 06:44:46
Git的一个branch就是一个commit的链,每一次的commit都有其parent commit,这样一个branch的整个演化过程就以链的方式全部记录下来了。可以使用git log来查看所有的commit.

从某一个提交点开始,更新了文件a.txt,与b.txt,然后提交后为commit 1,再然后更新了b.txt,提交后为commit 2.

这时候我们使用git log命令的话,能看到commt 1与 commit 2,因为是针对整个branch的。
使用git log a.txt的话,只能看到commit 1, 因为commit 2没有a.txt的更改。

问题是,对于某一个文件,比如说a.txt,Git系统也会维护一个commit的链吗?
...全文
161 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
孙大诚_SunRobin 2021-01-31
  • 打赏
  • 举报
回复
引用 1 楼 qybao 的回复:
不会 很简单,你回退到某个commit点,是针对这个branch回退的,不是根据单个文件回退的 举个例子,a.txt,b.txt做了commit 1,b.txt做了commit 2,然后你改了a.txt,但是这时你又想把b.txt退回commit 1的版本,你能单独回退b.txt吗?回退不了,这样a.txt也会被回退回去。所以,commit链并不是对单个文件管理的。
那git log a.txt为什么只有commit 1,它背后是怎么进行寻找的? 是从当前提交branch点来出发,向上追溯每一个commit,如果该commit中有a.txt的变动,则显示在git log a.txt中吗?
孙大诚_SunRobin 2021-01-31
  • 打赏
  • 举报
回复
那git log a.txt为什么只有commit 1,它背后是怎么进行寻找的? 是从当前提交branch点来出发,向上追溯每一个commit,如果该commit中有a.txt的变动,则显示在git log a.txt中吗?
qybao 2021-01-30
  • 打赏
  • 举报
回复
不会 很简单,你回退到某个commit点,是针对这个branch回退的,不是根据单个文件回退的 举个例子,a.txt,b.txt做了commit 1,b.txt做了commit 2,然后你改了a.txt,但是这时你又想把b.txt退回commit 1的版本,你能单独回退b.txt吗?回退不了,这样a.txt也会被回退回去。所以,commit链并不是对单个文件管理的。

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧