我和我的朋友一起使用git来合作一个项目。他在github中创建了一个包含我们每个名字的文件夹的repo,所以每当我更新一些东西时,我都会将它上传到这个文件夹,然后将其推送到github,他也是如此。所以每当有新的提交时,我们必须从github中提取并将编辑后的文件复制粘贴到我们自己的localhost(wamp)。
所以我想问:
如何在不检查github的情况下检查是否有来自git bash的新提交? Git pull将拉出我所知道的最新版本,但如果我只是想先检查一下呢?
假设我的git文件夹位于D:// git / project_name中。我可以将此文件夹复制到其他位置(例如USB闪存盘),然后从此USB进行git pull吗?
如果我们的方法无效,您对如何使用git有任何建议吗?我们正在使用CodeIgniter框架,所以起初我建议只是git推送整个CodeIgniter文件夹,但我的朋友说这很危险(因为整个配置和数据库都存在)并且没有必要(因为主系统文件夹很可能不会受到影响) )。所以我们正在使用这种当前的方法(有两个带有我们名字的文件夹,每当有更新时就推拉。
答案 0 :(得分:11)
依次回答你的前两个问题:
origin
在每种情况下都引用了GitHub存储库,您应该只运行git fetch origin
。然后,“远程跟踪分支”origin/master
将位于GitHub上的master版本中,您可以将其与主人git diff master origin/master
进行比较,以查看这两个版本之间的差异,或{{1} }查看git log master...origin/master
或master
唯一的提交。关于是否有更好的方法来做你正在做的事情,我恐怕我不清楚你正在做什么或试图达到明智的评论。但是,在每个开发人员命名的存储库中的文件夹(可能)非常相似的源代码听起来有点怀疑 - 你通常会使用分支来处理相同代码的不同版本。
答案 1 :(得分:4)
如果您的分支正在跟踪远程分支,您应该能够git status
并查看您是在遥控器的前方还是后方以及提交了多少次。
这对我来说有点混乱。以下是三个部分的答案:
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使用SSH身份验证,因此只要正确的用户正在运行命令,它就会在repo所在的位置无关紧要,因此它会发送正确的SSH凭据以及请求。