• Gemini
    2019-01-13
    如果有些文件不想加入版本控制,也不想提交到远端,可以按如下步骤操作:
    1.git ls-files查看暂存区内已进行版本控制的文件
    2.git rm --cached 〈文件名〉将文件移除版本控制
    3.编辑.gitignore文件,将不想加入版本控制的文件写进去,详细方法可参考github上的.gitignore文件。
    如果有描述不准确的地方还请批评指正

    作者回复: 🐂

    
     4
  • pyhhou
    2019-01-11
    可能我描述问题不够清晰,其实我是想说有时我们可能会往github错提交一些文件,我们在本地运行项目需要用到这些文件,但是并不想把它们提交到github上去,像是.project,.prettierrc,如果仅仅用git rm再push的话,本地和远端的文件都会被删除,在远端删除后pull也是同理,查了一下发现有一个git rm --cache 命令可以只删除远端文件而保留本地文件,并且这个命令还会自动帮你把该文件加入到.gitignore里面去,保证以后也不会被提交到远端,在这种情况下比较方便

    另外就是,试过在在命令行里用git checkout 直接切换到远端branch,貌似会到一个分离头指针的状态,不知道为什么,望老师指点。
    展开

    作者回复: "另外就是,试过在在命令行里用git checkout 直接切换到远端branch,貌似会到一个分离头指针的状态,不知道为什么,望老师指点。"

    远端分支只能看,不能用于呈现远端的变更。用 checkout 的目的是切换到某个分支,继续变更。因此,为了保证远端就是远端,不用于本地变更,所以变成分离头了,省得误导大家(以为切换到远端分支,生成commit,难不成远端分支就发生变化。这种理解是不对的。)

    
     2
  • 127.0.0.1
    2019-06-17
    请问git能不能merge 其他分支的指定文件

    作者回复: 根据你的问题,我先查了merge命令,且动手测试了,发现该命令不提供这个功能,但是有其他方法。
    以后大家有问题,可以google或必应上用英文搜索git的问题。https://stackoverflow.com/questions/5717026/how-to-git-cherry-pick-only-changes-to-certain-files

    这里面我看 git show SHA -- file1.txt file2.txt | git apply --cached - 这个方法应该可以满足你的要求。

    假设 f1 和 f2 两个分支,f2改了 readme ,a.java,b.java这三个文件,f1 想直接把f2最新修改的 readme 和 b.java 同步过来。那么:
    1)先切换到 f1 分支。
    2)执行 git show f2 -- readme b.java | git apply -
    3) f1 测试没问题后,再执行 add 和 commit 命令
    4)f1 的readme和b.java内容就喝 f2 相同了。

    
     1
  • pyhhou
    2019-01-04
    请教一下老师,最近遇到一个问题,创建了一个.gitignore文件但是里面ignore的东西没写全,导致不希望上传的东西上传了,这时把.gitignore文件需要ignore的东西补上,git pull 下来然后再push上去后发现GitHub上面希望ignore的文件还在,这该怎么处理?在远端直接删除?这样对本地是否有影响呢?

    作者回复: 某文件先纳入到git管理,后面在.gitignore里添加了该文件,只会让git以后不会添加此文件。

    如果仅仅想从现在开始不要有该文件,那么git本地用git rm 删除掉该文件,然后push到远端即可。

    如果在远端删除了该文件,那么git pull --rebase 后,本地分支也会随着远端一样删除掉该文件。

    假如有些敏感信息提交了,想彻底地从该仓库删除不该上传的文件,不妨看一下github提供的方法: https://help.github.com/articles/removing-sensitive-data-from-a-repository/

    
     1
  • 张天三石
    2019-03-09
    之前遇到这种冲突很晕,不知道咋回事,现在一看很简单了
    
    
  • felix
    2019-01-26
    rm后再add,文件的历史还在吗?每次我都看到是rename才提交
    
    
  • 安于此生
    2019-01-11
    @pyhhou 好像是git rm --cached 这个命令好像之前在留言区老师有回答过其他同学!
    
    
  • 冰尘缘
    2019-01-08
    @pyhhou 把远端的删除就可以了,我也碰见过这个
    
    
我们在线,来聊聊吧