如何获取我的代码的最新版本?

11 浏览
0 Comments

如何获取我的代码的最新版本?

我使用的是Git 1.7.4.1版本。

我想从代码库获取最新版本的代码,但是出现了错误:

$ git pull

….

M selenium/ant/build.properties

….

M selenium/scripts/linux/get_latest_updates.sh

M selenium/scripts/windows/start-selenium.bat

Pull失败,因为存在未合并的文件。

请在工作目录中解决这些问题,然后使用适当的'git add/rm '来标记解决方案,或者使用'git commit -a'。

我已经删除了工具所报错的文件的本地副本,但是仍然出现错误。

如何从远程代码库检出最新版本?

0
0 Comments

如何获取我的代码的最新版本?

如果你不关心本地的更改,可以采取以下解决方法之一:

解决方法1:获取最新的代码并重置代码

git fetch origin
git reset --hard origin/[tag/branch/commit-id 通常是:master]

解决方法2:删除文件夹并重新克隆

rm -rf [project_folder]
git clone [remote_repo]

如果你关心本地的更改,可以采取以下解决方法之一:

解决方法1:与新在线版本没有冲突

git fetch origin
git status

会报告类似以下内容:

Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.

然后获取最新版本

git pull

解决方法2:与新在线版本有冲突

git fetch origin
git status

会报告类似以下内容:

error: Your local changes to the following files would be overwritten by merge:

file_name

Please, commit your changes or stash them before you can merge.

Aborting

提交本地更改

git add .
git commit -m ‘Commit msg’

尝试获取更改(将失败)

git pull

会报告类似以下内容:

Pull is not possible because you have unmerged files.

Please, fix them up in the work tree, and then use 'git add/rm '

as appropriate to mark resolution, or use 'git commit -a'.

打开冲突文件并解决冲突。然后执行以下操作:

git add .
git commit -m ‘Fix conflicts’
git pull

会报告类似以下内容:

Already up-to-date.

更多信息:

如何使用'git reset --hard HEAD'来恢复到先前的提交?

如何在不提交我的代码(有冲突)到分支的情况下获取最新的更新?

如果我已经进行了不想合并的本地更改(例如,反映了本地机器上的自定义URL),我如何获取仓库中的新/更新文件而不覆盖我的本地更改?

0
0 Comments

如何获取最新版本的代码?

有可能你已经删除了你修改过的文件(因为你不关心这些改动),现在git将删除视为一次改动。下面是一种方法,将你的改动从工作副本移到“stash”中(如果你真的需要它们,可以取回来),这样你就可以从上游拉取最新的改动。

git stash  
git pull

如果你想要取回你的文件(可能与上游改动产生冲突),可以运行git stash apply将这些改动应用到你的代码上。这样,你就有了一种“撤销”改动的方法。

我建议使用git stash pop,除非你想要保留你的git stash历史记录。

0
0 Comments

如何获得最新版本的代码?

有时候,我们希望将本地的代码与仓库中的最新版本保持一致。下面是一些解决方法:

如果你不关心任何本地的修改(包括未跟踪或生成的文件,或者子仓库),只想要仓库中的一个副本,可以使用以下命令:

git reset --hard HEAD
git clean -xffd
git pull

需要注意的是,这将清除你在本地所做的所有更改,请谨慎使用。这就像是使用rm -Rf命令一样。

我尝试了以上命令,但仍然出现错误:“CONFLICT (content): Merge conflict in selenium/ant/build.xml”(还有其他错误)。我只想用仓库中的最新版本覆盖我的文件。有什么办法吗?

git clean -f并不是解决方案的一部分。它会删除仓库中没有保留的文件(例如,在我的情况下,日志文件)。你并不需要执行这个命令来让git pull再次工作,只需执行git reset --hard HEAD就足够了。

如果你像我一样,在本地版本中进行了提交(例如,为了让git pull工作,我试图提供一个满意的提交!),并且你愿意放弃这个本地提交,那么可以使用git log命令来查找之前提交的ID,并将其替换为git reset --hard HEAD中的HEAD。例如:git reset --hard a12312

作为一个新手,不要推荐删除命令给git新手。

这个解决方法正是我所寻找的。谢谢。Chentir,请接受这个答案。

我认为git clean -f也很重要,如果你想要一个真正干净的仓库。它相当于在TFS中执行“删除文件夹中的所有内容 -> 获取最新版本/获取特定版本”的操作,在我的情况下,这正是我想要的。

我认为git clean -f也很重要。我想要获取最新版本,不想保留过时的缓存条目或者其他在仓库中不存在的生成的资源。这个解答清楚地说明了它将删除本地的修改并模仿仓库中的最新版本,所以对我来说看起来很完美。如果我真的需要在更新之间保留日志文件,我会将它们移到其他地方。

是的!这个方法有效。覆盖本地副本并获取仓库中的最新副本。

为什么总是使用git reset --hard HEAD而不是仅仅使用git reset --hard?文档中说HEAD是默认值吗?

嗯,我不知道git clean -xffd会清除我的目录。

我是一个新手,使用了git clean -xffd,结果清除了我的目录以及所有的插件和其他内容。不得不重新安装它们。如果你是一个新手,请不要使用这个命令!

我是一个新手。我刚运行了git clean -xffd,现在我真的乱了。不得不花三个小时进行初始化和更新。

这个评论上真的应该有一个清晰明确的警告。任何可能未被推送到git的配置文件,因为它们包含密钥或授权令牌,都将被删除。

0