git bash:如何检查是否存在';有新的提交可用吗

git bash:如何检查是否存在';有新的提交可用吗,git,bash,Git,Bash,我和朋友一起使用git进行项目协作。他在github中创建了一个包含我们每个人姓名的文件夹的repo,所以每次我更新某些内容时,我都会将其上传到这个文件夹,然后将其推送到github,他也是这样做的。因此,每次有新的提交,我们都必须从github中提取并将编辑的文件复制粘贴到我们自己的本地主机(wamp) 所以我想问的是: 如何在不检查github的情况下检查git bash是否有新的提交?Git pull将获取我知道的最新版本,但是如果我只想先检查一下呢 假设我的git文件夹位于D://git

我和朋友一起使用git进行项目协作。他在github中创建了一个包含我们每个人姓名的文件夹的repo,所以每次我更新某些内容时,我都会将其上传到这个文件夹,然后将其推送到github,他也是这样做的。因此,每次有新的提交,我们都必须从github中提取并将编辑的文件复制粘贴到我们自己的本地主机(wamp)

所以我想问的是:

  • 如何在不检查github的情况下检查git bash是否有新的提交?Git pull将获取我知道的最新版本,但是如果我只想先检查一下呢

  • 假设我的git文件夹位于D://git/project\u name中。我是否可以将此文件夹复制到其他位置(例如USB闪存),然后从此USB执行git拉取

  • 如果我们的方法无效,您对我们应该如何使用git有什么建议吗?我们使用的是CodeIgniter框架,所以一开始我建议只使用git推送整个CodeIgniter文件夹,但我的朋友说这很危险(因为整个配置和数据库都在那里)而且没有必要(因为主系统文件夹很可能不会被碰)。所以我们使用当前的方法(有两个文件夹,其中有我们的名字,每次有更新时都会推拉)


  • 如果您的分支正确地跟踪远程分支,您应该能够执行
    git status
    ,查看您是在远程分支的前面还是后面,以及提交的次数

    这让我对git有点困惑。以下是三个部分的答案:

    1) 通常,在克隆远程回购时,需要使用
    -t
    标志来跟踪正在复制的远程分支:

    git checkout -tb my_branch origin/my_branch
    
    2) 如果您忘记执行此操作,您可以在以后执行以下操作:

    git branch --set-upstream my_branch origin/my_branch
    
    3) 如果您的远程分支与本地分支同名,您应该能够将git设置为自动跟踪所有远程分支:

    git config push.default matching             <-- for this repo only
    git config --global push.default matching    <-- for all git repos that this user deals with on this machine
    

    git config push.default matching依次回答前两个问题:

  • 假设
    origin
    在每种情况下都引用GitHub存储库,那么您应该只运行
    git fetch origin
    。然后,“远程跟踪分支”
    origin/master
    将位于GitHub上的master版本,您可以将其与您的master与
    git diff master origin/master
    进行比较,以查看这两个版本之间的差异,或
    git log master…origin/master
    查看
    master
    origin/master
    所特有的提交
  • 是的,您可以将存储库复制到U盘并从U盘中取出。但是,如果您想从USB密钥拉到另一台计算机上,则需要设置一个远程设备,该远程设备指向USB密钥上存储库的位置

  • 关于是否有更好的方法来做你正在做的事情,我恐怕我不太清楚你在做什么或试图达到什么目的,只是理智地评论一下。然而,在存储库中以每个开发人员的名字命名的文件夹(可能)包含非常相似的源代码听起来有点可疑-您通常会使用分支来处理同一代码的不同版本。

    可能会重复远程中的检查新提交我使用这个,我们在git是新手,所以对我们来说也有点困惑:)所以基本上,我的朋友在github创建了一个回购协议,并邀请我作为合作者,所以我们都可以推到回购分支主节点(默认值?),所以我们没有真正使用分支或任何东西。坏吗?因此,基本上每次我想知道是否有新的提交,我都必须去github检查,否则我可以在不知道新文件更新的情况下拉取所有最新的文件(想象假期后拉)。是否仍要检查哪些文件是新的?第三个问题呢?你有什么建议吗?你总是在一个分支机构,在这种情况下,是主分支机构。执行上述第2步,将“my#u branch”替换为master。然后让你的合作伙伴提交一个文件到GITHUB,然后在你的机器上做一个Git状态,看看它是否知道你是一个提交。关于你的设置,考虑创建符号链接。ln-s my/git_project/Applications/MAMP/htdocs/my_project,如果您在Mac上。不确定Windows。@Mauvis Ledford:“匹配”是推送的默认值。默认值,所以您不需要配置它。事实上,如果您已经与上游分支机构建立了关联,正如您在1)和2)中所建议的那样,这是非常重要的。此外,我怀疑发问者和合作者已经从GitHub克隆了,或者按照他们的指示创建了一个新的存储库,因此步骤1)和2)应该是不必要的。@Mark,海报只要求告知是否有新的提交,而没有看到更改的差异。如果他设置了正确的跟踪,那么一个简单的“git状态”不会告诉海报他在提交方面领先或落后了多远吗?