有时候在比对代码时,看到某些改动,但不清楚这个改动的作者和原因,也不知道对应的BUG号,也就是说无从查到这些改动的具体原因了~
【注】:某个文件的改动是有限次的,而且每次代码修改的提交都会有commit描述,我们可以从这里进行入手;
一、切换到目录
首先切换到要查看的文件所在的目录:
cd packages/apps/Mms/src/com/android/mms/ui/
二、git log --pretty
然后使用下面的命令可列出文件的所有改动历史,注意,这里着眼于具体的一个文件,而不是git库,如果是库,那改动可多了去了~
git log --pretty=oneline 文件名
如:
root@ubuntu:android_src/packages/apps/Mms/src/com/android/mms/ui# git log --pretty=oneline MessageItem.java
27209385caf678abe878375a470f4edd67a2d806 fix to process force close when empty address contained in card
0e04b16f1dad7dc0a36e2235f7337bc656c365c7 display for 1970-1-1
e4abf3a213197491e0855e101117b59b5dc0160d HREF#13954 receive, store, and display wap push
356f6def9d3fb7f3b9032ff5aa4b9110d4cca87e HREF#16265_uim_show_time_error
350f9d34c35ab50bdb4b2d43fb3ff9780e6c73fa fix xxxx
715e32f97bd9d8ce4b5ba650b97ba4b137150456 Fix ANR from calling Contact.get()
fd8357ff5febab0141e1beb8dd3b26f70416b108 Fix missing From field
d130e2e6dc448fd80ecb70f0d31e3affb9888b9a fix bug 2112925: don't display zip file garbage content in MMS.
0e19f738c114f86d0d88825ee48966015fb48b6d Don't always show sent timestamp
52f854cbb75e8f9975c7e33216b828eb2f981095 Don't show Anonymous as the MMS sender
331864544ec51ba6807fc5471cc6d537b7fef198 add search capability
33a87f96f8c625aa10131a77a3968c97c4ec5a62 Remove all references to ContactInfoCache except those in Contact.
70c73e05a792832aa28da751cdaf3fa83a7b8113 Begin moving all conversation data behind a data model with a cache.
48da875f1beea835c6771977e5bd8a9aa3d4bc10 Begin adding UI unit tests to the Mms app.
66dde9460badebf8e740275cabde9cca256006eb Stop requiring a Context to be passed in to ContactInfoCache.
591d17e9a51bb9f829d6860dc7aa0bad25062cd5 auto import from //branches/cupcake_rel/...@138607
72735c62aba8fd2a9420a0f9f83d22543e3c164f auto import from //depot/cupcake/@135843
892f2c5bf965b1431ae107b602444a93f4aad4a3 auto import from //depot/cupcake/@135843
153ae99e0a7d626a24d61475eeb133249deb448c auto import from //depot/cupcake/@132589
abd7b2d90f7491075f1daba4b4cccdfc82f8ddd1 auto import from //depot/cupcake/@137055
59d72c57ce9c319b6cd43ce2ab36b7076c9e821f auto import from //branches/cupcake/...@132276
44cea74dc55e2459262d0d765ef4a69267dd09b0 auto import from //branches/cupcake/...@131421
0f236f55349f070ac94e12cca963847173393da8 Code drop from //branches/cupcake/...@124589
8eed706474910ccb978acda03e85d3261037da6e Initial Contribution
三、git show
如上所示,打印出来的就是针对文件MessageItem.java的所有的改动历史,每一行最前面的那一长串数字就是每次提交形成的哈希值,接下来使用git show即可显示具体的某次的改动的修改~
git show 356f6def9d3fb7f3b9032ff5aa4b9110d4cca87e
结果如下:
root@ubuntu:/android_src/packages/apps/Mms/src/com/android/mms/ui# git show 356f6def9d3fb7f3b9032ff5aa4b9110d4cca87e
commit 356f6def9d3fb7f3b9032ff5aa4b9110d4cca87e
Author: 某某某 <某某某的邮箱>
Date: Thu Jan 6 01:50:31 2011 +0800
修改的描述(是该代码commit时所填)
Signed-off-by: 某某某 <某某某的邮箱>
diff --git a/src/com/android/mms/ui/MessageItem.java b/src/com/android/mms/ui/MessageItem.java
index 0a0c4b7..55c3b27 100644
--- a/src/com/android/mms/ui/MessageItem.java
+++ b/src/com/android/mms/ui/MessageItem.java
+
+ 列出具体的改动
-
-
这样就可以知道是谁做了修改,以及具体的修改代码~
那接下来不管是直接去找他交流还是研究代码,都有依据了~
转自:http://www.cnblogs.com/flyme/archive/2011/11/28/2265899.html
相关推荐
当我们需要深入调查特定版本的代码更改时,IntelliJ IDEA提供了一些内置的Git插件功能,使得我们可以便捷地查询和分析历史提交。本文将详细介绍如何使用IntelliJ IDEA的插件来查询Git特定版本的代码更改。 首先,让...
### 如何在VSCode中仅提交部分已修改的Git文件 在软件开发过程中,经常会遇到需要将部分修改过的代码提交到版本控制系统的情况。这在进行功能迭代或修复bug时尤其常见。本文将详细介绍如何在Visual Studio Code...
Git是一款强大的分布式版本控制系统,它可以帮助开发者追踪代码的修改历史,协同工作,以及管理项目。然而,不是所有项目中的文件都需要纳入版本控制,比如编译产生的临时文件、日志文件等。这时候,我们就需要设置...
本文将深入探讨如何使用Git来查看代码的修改内容,特别是针对Markdown(.md)文件的变更。通过理解Git的基本操作,如`git status`、`git diff`以及`git log`,开发者可以有效地追踪代码库中的变化,并进行协作。 ...
`git log` 是Git命令行中一个非常重要的工具,它允许开发者查看提交历史,找出代码的演变过程。本篇文章将深入探讨如何使用`git log`根据特定条件查询日志,并统计修改的代码行数。 首先,了解`git log`的基本用法...
3. **查看文件状态**:使用`git status`命令可以查看当前工作目录下的文件状态,包括未跟踪的新文件、已修改但未暂存的文件以及已暂存等待提交的文件。 4. **添加文件到暂存区**:通过`git add`命令可以将工作目录...
当你发现自己的代码被意外覆盖或者丢失时,可以通过`VCS` -> `Git` -> `Show History`(或使用快捷键)来查看文件的历史版本。在历史记录中,你可以看到每个提交的详细信息,包括作者、时间以及对文件的改动。 2. *...
1. **版本控制**:每个文件都有其历史记录,用户可以随时回滚到任何先前的版本,这对于防止意外修改或数据丢失至关重要。 2. **差异比较**:GitMan可能提供了直观的文件差异比较功能,让用户能够清晰地看到文件的...
例如,`git branch`用于管理分支,`git merge`用于合并分支,`git log`查看提交历史,`git reset`回退到某个版本,以及`git push`和`git pull`用于与远程仓库交互。理解并熟练掌握这些命令,将使你在Git的世界中...
* diff 命令与 commit 更改:使用 `git diff` 命令查看更改的内容。 * Status Diff 和 Commit Log:使用 `git status` 命令查看当前状态,使用 `git log` 命令查看提交记录。 * 更正提交的信息 - git amend:使用 `...
3. **查看某个文件最近的x个版本信息**:`git log -x filename`。 4. **查看所有版本信息(仅版本号和描述)**:`git log --pretty=oneline`。 #### 七、回滚版本 1. **回滚至上一个版本**:`git reset --hard ...
使用Git时,基本的流程包括初始化仓库(`git init`)、克隆远程仓库(`git clone`)、添加文件到暂存区(`git add`)、提交更改(`git commit`)、推送本地更改到远程仓库(`git push`)以及拉取远程仓库的更新(`...
【MyEclipse10.7的Git文件】与【myeclipse10.7 git 文件】这两个描述都指向了在MyEclipse 10.7版本中使用Git进行版本控制的相关内容。Git是一款分布式版本控制系统,它使得开发者可以追踪代码的变更历史,协同合作...
如果不再需要某个文件,可以使用以下命令将其从Git仓库中删除。 - **命令**: - `rm <filename>`:从文件系统中删除文件。 - **说明**: - 删除后,如果不希望该文件保留在Git的历史记录中,还需要通过`git ...
Git是世界上最流行的分布式版本控制系统,它允许开发人员协作编辑代码并跟踪项目的更改历史。Git-2.30.2.2-64是Git的特定版本,针对64位操作系统设计。这个压缩包包含了Git的可执行文件git.exe,它是Windows用户在...
`git blame <file>`可以查看文件中每一行的修改记录,显示谁在何时做了哪些更改。 如果需要撤销本地的更改,`git reset --hard HEAD`将会丢弃所有本地未提交的更改,回到上次的提交状态。`git checkout HEAD <file>...
4. **工作流程**:理解`git status`查看状态,`git diff`查看改动,`git add`添加到暂存区,`git commit`提交改动,以及`git log`查看提交历史。 5. **分支管理**:`git branch`用于创建、切换和删除分支,`git ...
若想撤销工作区的某个修改,而不进行提交,可以使用`git checkout -- file_path`,这会将文件恢复到最近的提交状态。 Git的工作区、暂存区和提交区是理解Git操作的关键概念。工作区是你的实际项目目录,包含所有...
7. **日志查看**:`git log` 显示提交历史,`git blame` 查看每一行代码的最后修改者。 8. **协作工具与流程**:除了命令行操作,还有许多图形化工具如SourceTree、GitKraken等简化Git操作。此外,了解和实践Git...