① Git上面怎么比较文件
看哪些文件修改过是 git status
对比源文件是 git diff
这些全部是基于文件系统来做的,并不是你想版象的实时标记,权所有的功能 git 都直接提供了,建议可以再深入一些学习下 git 本身
② 类似git/linux的文件对比功能是怎么实现的
你的问题是:如何把修改后没有提交(commit)的文件和已经提交的版本进行对比回? 对吗? 你应该答用的是windows下面的带有GUI的客户端吧?那个带GUI的客户端能做的功能很少,所以要想真正使用Git,你还是要学一下git的shell 命令 windows下,有一个git ...
③ Git查看某个版本修改了哪些文件
查看某个文件某次的修改很简单,这样就可以了
git show 某次的提交哈希值 文件名
如果我的回答没能帮助您,请继续追问。
④ git怎么查看哪些文件是在版本控制下的呢
TortoiseGit是一个开放的,为的git版本控制系统的源客户端。像一个普通的文件服务器,除了会记得您有史以来的文件和目录的每一个变化外,还可以恢复您的文件的旧版本,并研究如何以及何时改变了历史数据,谁改变了它。git相对于其他的版本控制,优势在于分支管理。几个常见情况及分支使用方法。1对于自己的代码修改后,却已经不知道服务器上的代码是否已经发生改变。此时想上传自己的代码。1)在master上创建分支mysrc;2)switch到mysrc分支,进行修改代码;3)修改好代码后,进行gitcommit操作;4)switch到master分支,进行gitpull操作,将服务器上的代码签下来;5)进行gitmergefrommysrc操作,将mysrc的代码合并到master中;6)gitcommit操作;7)gitpush操作。2修改自己的代码过程中,还不需要上传时,需要从服务器上签新的代码,但保留当前的代码修改。1)在master上创建分支mysrc;2)switch到mysrc分支,进行代码修改;3)进行gitcommit操作;4)switch到master分支,进行gitpull操作;5)switch到mysrc分支,进行gitmergefrommaster操作;6)gitcommit操作。3修改了代码,但仅想上传部分代码,其余代码保留同服务器版本。1)在master上创建分支mysrc;2)switch到mysrc分支,进行代码修改;3)修改好后,对部分代码进行gitcommit操作;4)进行gitrebase操作,将其他代码还原;5)switch到master分支,进行gitmergefrommysrc操作;6)gitpush操作。
⑤ github怎么进行新旧文件的对比
你的问题是:如何把抄修改后没有袭提交(commit)的文件和已经提交的版本进行对比? 对吗?
你应该用的是windows下面的带有GUI的客户端吧?那个带GUI的客户端能做的功能很少,所以要想真正使用Git,你还是要学一下git的shell 命令
windows下,有一个git shell不知你是否安装,如果有的话打开进入到你的工作目录(也就是你提交代码的那个目录下面)
git status 可以查看有哪些文件变动
git diff 可以查看你所说的对比。其中 - XXXXXXXX表示删除的行,+ XXXXXXXXXXX表示增加的行
git commit -a 提交
push origin master 上传commit到Github
另外在Linux下有专门的对比工具,还有很多git的辅助插件比如tig,很好用。
如果你想用Git进行开发,建议你看看Pro Git,网上有电子版的,深入浅出,算是经典入门教材了。
⑥ sourcetree 如何让任意两个版本中同一个文件进行比较
选中任意两个提交版本,右键选择“创建补丁”,可以在创建补丁窗口中查看这两个版本的差异。因为不需要真的创建补丁,看完差异后取消就好了。
⑦ Git当中怎么寻找版本号,并回退以前版本当中的某个文件
简单,git log -- your_path即可列出某个路径的changelog,然后进一步查commit记录就可以找到被删掉的文件记录了版
比如我的权xalk/grails-app/conf/Config.groovy早已经删掉,但是可以通过git log显示最后一次该文件的递交记录拿到这个commit。
git log -1 --decorate -- xalk/grails-app/conf/Config.groovy
⑧ 如何用git可以得到两个版本之间修改了哪些文件
git diff hash1 hash1 --stat
如果是branch的话
git diff branch1 branch2 --stat
加上 --stat 是显示文件列表, 否则是文件内容diff
⑨ git 获取历史版本的几种方式
我们简单的描述一个例子:
a)初始化操作
有两个文件file1.txt和file2.txt
1, 初始化的时候就有这两个文件
操作:
git init
git status
git add .
git commit -m “init version”
2, 在master分支上修改了file1.txt,并提交
操作:
(修改file1.txt)
git add file1.txt
git commit -m “change file1”
3, 然后新建分支banana,并切换到banana分支上
操作:
git branch banana
git checkout banana
4, 修改file1.txt和file2.txt,并提交。
操作:
(修改file1.txt和file2.txt)
git add file1.txt file2.txt
git commit -m “change by banana”
这个时候,我们可以输入 gitk,查看一下当前的版本情况。如下图:git-001
5, 然后,切换到master分支上,修改file2.txt,并提交。
操作:
git checkout master
(修改file2.txt)
git add file2.txt
git commit -m “change by master”
输入gitk,查看当前版本情况,如下图:git-002
b)发现问题需要查看历史版本
我们现在发现当前的版本有点问题,还不能提交到版本库。
1,我们需要从git commit中返回.
则输入:
git reset --soft HEAD^
解释一下,HEAD是当前分支的最新版本。^表示父节点。当前节点的父节点,就是上一次提交的版本。也就是标记为“change file1”的版本。
问为什么不是”change by banana”这个版本呢?不同的分支哦。”change by banana”是banana分支的最新代码,和master分支不同的。
这个时候输入
git status
看看,是不是显示file2.txt修改了没有提交呢。
2,我们需要从git add中返回
再仔细查看之后,我们发现file2.txt真的写错了,需要返回到git add之前的状态。
输入:
git reset -q file2.txt
这个时候,file2.txt就回到了解放前了。用git status查看一下,file2.txt是”change not staged for commit”状态。
3,回到没有做过的情况
我们最终确定,最后一次修改的file2.txt是无用的代码,我们需要废弃掉。
注意,这个操作不能恢复的哦。
git reset --hard
这个命令,不能指定具体的文件。是把当前的修改全部清除,恢复到最后一次提交的版本。
这个时候,用gitk查看一下:git-003
已经彻底回复到了“change file 1”的版本了。
4,直接回复到某个版本
我们现在切换到banana分支。
git checkout banana
然后用gitk看一下。可以看出,我们之前的操作,对banana分支一点影响也没有。现在我们需要把banana分支回复到初始状态,但是当前的改动的代码还是需要留着。我们可以看,init版本是当前版本的父节点的父节点。我们可以这么操作:
git reset --soft HEAD^^
然后用gitk看一下:git-004
最近的版本已经变成了init version了。所有的改动都是add未提交状态。
5,得到当前最新代码
最后。我们把file1.txt和file2.txt都删掉。我们需要从版本库中取得当前最新的代码。
很简单:
git checkout master
如果是要banana分支的最新代码,则:
git checkout banana
以上的操作,我们知道了如何查看版本分支,和如何回复到以前的版本。
⑩ 如何使用git比较两次commit之间的差异文件
如何使用git比较两次commit之间的差异文件
有时候需要查看两次提交之间的差异。
只需下面几个步骤即可。
1.git log 查看提交历史 如下:
commit
Author: songchong <[email protected]>
Date: Tue Aug 22 20:10:08 2017 +0800
git commit 5th
commit
Author: songchong <[email protected]>
Date: Tue Aug 22 20:07:32 2017 +0800
git commit fourth
commit
Author: songchong <[email protected]>
Date: Tue Aug 22 19:47:47 2017 +0800
git commit three