git fetch 和git pull区别
区别 | git fetch | git pull |
---|---|---|
目的不同 | 从远程获取最新版本到本地,但不会自动合并,用于跟踪下载查看最新提交,但不将这些提交合并到本地存储库中 | 从远程获取最新版本并 merge 到本地,自动将提交合并到本地存储库中,无需查看提交 |
用途不同 | 只通过将提交 从远程存储库传输到本地存储库 来使远程存储库的本地副本保持最新,将提交导入到本地分支 允许跟上其他人所做的更改 | 更改引入本地代码存储库,以使用远程存储库更新本地存储库 |
用法不同 | 在将更改与本地存储库集成之前轻松查看其他开发人员推送的提交,从远程存储库中获取所有分支 | 执行拉取,检索分支的远程副本并将其与本地副本合并 |
远端跟踪分支不同 | 直接更改远端跟踪分支 | 无法直接对远程跟踪分支操作,必须先切回本地分支然后创建一个新的commit提交 |
拉取不同 | 会将数据拉取到本地仓库 – 并不会自动合并或修改当前的工作 | 从远程获取最新版本并merge到本地,会自动合并或修改当前的工作 |
commitID不同 | 本地库中master的commitID不变,还是等于1 | 本地库中master的commitID发生改变,变成了2 |
安全性不同 | 更安全,因为它只拉入所有提交,但不会对本地文件做任何修改 | 相当于运行git fetch,然后立即将改动合并到本地仓库。这样的确少一个步骤,但会带来风险 |