【问题标题】:How can I remove all files in my git repo and update/push from my local git repo?如何删除我的 git repo 中的所有文件并从我的本地 git repo 更新/推送?
【发布时间】:2012-02-21 11:34:29
【问题描述】:

是否可以删除存储库中的所有文件并仅使用本地计算机中的文件对其进行更新?原因是,有些文件在我的 github 中是不需要的,所以我想删除这些文件。我不想一个一个地删除文件,而是想看看是否可以只删除我的 git repo 中的所有文件并仅使用本地计算机中的文件更新/推送。希望它清楚。谢谢。

【问题讨论】:

标签: git github git-push


【解决方案1】:

从工作副本的顶部执行git add -A,查看git status 和/或git diff --cached 以查看您将要执行的操作,然后查看git commit 结果。

【讨论】:

    【解决方案2】:

    是的,如果您执行git rm <filename> 并提交并推送这些更改。该文件将从该变更集和未来提交的存储库中消失。

    该文件仍可用于以前的修订版。

    【讨论】:

      【解决方案3】:

      你可以这样做:

      cd /tmp
      git clone /your/local/rep  # make a temp copy
      cd rep
      git rm -r *                # delete everything
      cp -r /your/local/rep/* .  # get only the files you want
      git add *                  # add them again
      git status                 # everything but those copied will be removed
      git commit -a -m 'deleting stuff'
      cd /your/local/rep
      git pull /tmp/rep          # now everything else has been removed
      

      这可能有一个单行线......

      【讨论】:

      • git rm -r * 不能可靠地工作,因为 * 由 shell 扩展,因此您在 CWD 中传递与 * 匹配的文件和目录列表。这将无法匹配以. 开头的文件以及其他问题。目的可能是将 * 传递给 git,通过引用星号实现:git rm -r '*'
      【解决方案4】:

      首先,使用以下命令从您的 Git 存储库中删除所有文件:git rm -r *

      之后你应该提交:使用git commit -m "your comment"

      之后,您使用:git push 推送(即更新原始存储库)

      使用以下方式验证您的状态:git status

      之后,您可以复制本地 Git 文件夹中的所有本地文件,然后使用以下命令将它们添加到 Git 存储库:git add -A

      你提交 (git commit -m "your comment" 然后你推送 (git push)

      【讨论】:

      • 这意外删除了我所有的文件,除了 git-ignore 中的文件。只是试图从 git repo 而不是文件系统中删除所有内容。
      • git rm -r * 不能可靠地工作,因为 * 由 shell 扩展,因此您在 CWD 中传递与 * 匹配的文件和目录列表。这将无法匹配以. 开头的文件以及其他问题。目的可能是将 * 传递给 git,通过引用星号实现:git rm -r '*'
      【解决方案5】:

      警告:这将删除您的文件,请确保您有备份或可以恢复提交。

      删除存储库中的所有元素:

      $ git rm -r *
      

      然后:

      $ git commit -m 'Delete all the stuff'
      

      【讨论】:

      • git rm -r * 不能可靠地工作,因为 * 由 shell 扩展,因此您在 CWD 中传递与 * 匹配的文件和目录列表。这将无法匹配以. 开头的文件以及其他问题。目的可能是将 * 传递给 git,通过引用星号实现:git rm -r '*'
      【解决方案6】:

      这个过程很简单,和任何 git 提交都遵循相同的流程。

      1. 确保您的存储库完全是最新的。 (例如:git pull
      2. 导航到本地磁盘上的 repo 文件夹。
      3. 删除不再需要的文件。
      4. 然后git commit -m "nuke and start again"
      5. 然后git push
      6. 利润。

      【讨论】:

        【解决方案7】:

        删除隐藏的 .git 文件夹(您可以在项目文件夹中找到该文件夹​​)并再次使用 git init 命令开始创建 git 存储库的过程。

        【讨论】:

        • OP 指定远程而非本地。
        【解决方案8】:

        删除存储库中的所有元素:

         git rm -r * -f -q
        

        然后:

         git commit -m 'Delete all the stuff'
        

        然后:

         git push -u origin master
        

        然后:

         Username for : "Your Username" 
         Password for : "Your Password"
        

        【讨论】:

          【解决方案9】:

          就我而言

          git rm -r .

          成功了

          【讨论】:

            【解决方案10】:

            我正在尝试做:

            git rm -r *
            

            但最后对我有用:

            git rm -r .
            

            希望对你有帮助。

            【讨论】:

              【解决方案11】:

              删除所有不属于存储库的文件(例如,在切换分支后进行干净构建):

               git status | xargs rm -rf
              

              【讨论】:

                【解决方案12】:

                首先,使用 cd(更改目录)命令导航到您的文件夹。然后使用命令确保你在正确的 git 分支中工作

                git branch
                

                如果要删除整个文件。你也可以使用

                git rm -r .

                用于删除单个文件,

                git rm file1.txt (file1.txt - 文件名)

                用于删除文件夹,

                git rm -r foldername

                删除文件或文件夹后,应提交:

                git commit -m "your comment"
                

                然后就可以推送分支了:

                git push
                // for example, 
                git push origin develop
                

                (它将更新原始存储库)

                【讨论】:

                  【解决方案13】:

                  如果您更喜欢使用GitHub Desktop,您只需在本地存储库的父目录中导航并删除父目录中的所有文件。然后,提交并推送您的更改。您的存储库将清除所有文件。

                  【讨论】:

                    【解决方案14】:

                    我试过这样

                    git rm --cached -r * -f
                    

                    它对我有用。

                    【讨论】:

                      猜你喜欢
                      • 2022-01-09
                      • 2023-04-03
                      • 2016-01-12
                      • 2014-01-01
                      • 2022-11-30
                      • 2016-10-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2020-11-05
                      相关资源
                      最近更新 更多