Git项目更新

本文介绍了如何将远程仓库的项目更新到本地,包括创建和切换分支,解决扩展包获取失败的问题。在遇到项目丢失和分支冲突时,提供了备份、合并和解决冲突的步骤。强调了在有成功运行的源代码时,可以对比排查新项目的问题,以及每次git操作后检查状态的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

任务一 - 将远程仓库更新好的项目更新到本地

疑难解决/小提示

1. 分支用处

2. 项目中的扩展包获取失败遇到的问题及解决方案


任务一 - 将远程仓库更新好的项目更新到本地

# 进入项目目录,列出所有分支,当前只有master分支

$ cd /Users/ZMoKu/customize/personal/project/perblog
perblog ZMoKu$ git branch
* master

# 查看项目最新状态:项目所在分支、变更文件,确认分支为masters

perblog ZMoKu$ git status
On branch master
....

# 查看项目最新修改情况

perblog zmoku$ git log -5

# 获取远程项目

perblog zmoku$ git fetch

# 创建develop分支

perblog zmoku$ git branch develop

# 创建并切换至自己的develop分支

perblog zmoku$ git checkout -b develop_zmoku

   等价于

perblog zmoku$ git branch develop_zmoku
perblog zmoku$ git checkout develop_zmoku

# 确认当前所在分支

perblog zmoku$ git status
On branch develop_zmoku
...


疑难解决/小提示

1. 分支用处

        为了确保代码的安全性,自行更改项目时在develop_zmoku中进行,完成并经过审核后提交到develop分支中,最终由项目master合并入项目主分支master中。完成最终提交后,需要对develop_zmoku分支进行清理。

        如果项目多人合作,会出现本地分支和远程分支无法匹配的情况,是因为远程项目更新了新的分支内容,本地仓库却仍是旧的项目,导致分支不对等,此时需要先把远程仓库的项目更新下来,再重新提交自己修改的分支。

        对项目进行编辑时,先建立自己的分支。为了预防期间文件的丢失,还可以对修改进行备份。

# 备份分支(在master的基础上新建zmoku_master分支并继承master的内容)

$ git checkout master
$ git branch zmoku_master

# 将某远程仓库中的主分支master内容强制覆盖到另本地分支【谨慎】

$git checkout -b zmoku_develop
$ git reset --hard origin/master

2. 项目中的扩展包获取失败遇到的问题及解决方案

        

        需求:gitee新建Blog仓库,将仓库克隆到本地,复制本地项目wx并提交到Blog仓库中。

# 1 新建文件夹,搭建虚拟化环境,并下载项目至本地

$ cd ~/customize/personal/courses/ctohy/project
project zmoku$ mkdir z_blog
project zmoku$ virtualenv blog_env
project zmoku$ source blog_env/bin/activate
project zmoku$ cd z_blog
(blog_env) z_blog zmoku$ git clone git@gitee.com:ZMoKu/blog.git

# 2 此时文件夹中的内容为

(blog_env) z_blog zmoku$ ls
blog
(blog_env) z_blog zmoku$ cd blog
(blog_env) z_blog zmoku$ ls
.gitignore    LICENSE    README.en.md    README.md

#3 复制本地项目到仓库中。【虽然本地也有,但我并没有直接ctrl+c/v,而是直接克隆远程仓库的项目。悲伤的开始~】

(blog_env) z_blog zmoku$ cd blog
(blog_env) blog zmoku$ git clone SSH
(blog_env) blog zmoku$ ls
wx

# 4 由于wx项目中的拓展包exlib无法直接克隆,此时exlib文件夹为空。这里采用合并的方式加载。

(blog_env) blog zmoku$ cd wx
(blog_env) wx zmoku$ git submodule init
(blog_env) wx zmoku$ git submodule update
(blog_env) wx zmoku$ git submodule add https://gitee.com/skyviewfund/exlib.git exlib

        此时报错,显示exlib已存在

'exlib' already exists in the index

# 5 先删除空文件夹exlib

(blog_env) wx zmoku$ rm -rf exlib

        git status查看当前状态:deleted:    exlib,重复#4,it submodule add  https://gitee.com/skyviewfund/exlib.git exlib,仍然报错

'exlib' already exists in the index

# 6 查出问题是存在隐藏文件.git冲突,删除.git

(blog_env) wx zmoku$ cd .git
(blog_env) .git zmoku$ ls
HEAD            config          description     hooks           index           info            logs            objects         packed-refs     refs
(blog_env) .git zmoku$ cd ..
(blog_env) wx zmoku$ rm -rf .git
(blog_env) wx zmoku$ git status

# 7 由于只是需要wx项目中的代码来组建自己的项目,这里需要把wx复制到blog中

(blog_env) wx zmoku$ cd ..
(blog_env) blog zmoku$ git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean
(blog_env) blog zmoku$ mv wx/* ./

# 8 提交更新

(blog_env) blog zmoku$ git add .
(blog_env) blog zmoku$ git commit -m 'add wx'

        可通过git log查看变更

#  9 重新合并第三方库exlib

(blog_env) blog zmoku$ git submodule add https://gitee.com/skyviewfund/exlib.git exlib

        加载成功

# PyCharm打开运行项目,报错:没有‘exlib.rest’模块

# 与本地成功运行的项目wx进行对比,发现是utils/response.py文件不一致。【猜测应该是后来本地项目修改好后未更新到远程仓库中,导致克隆下来的仍然不能运行】

# 重新更改blog项目中的内容,这次直接使用能正确运行的本地项目wx的内容进行替换。其中,exlib文件不需要替换。

# PyCharm重启项目运行,报错:缺失xeger包和regex包

(blog_env) blog zmoku$ pip install xeger
(blog_env) blog zmoku$ pip install regex

# 【run】运行成功!

# 【run】->【edit configurations...】->【Parameters: runserver】运行成功!

 * Serving Flask app "app" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

【OS:项目复制期间还发生了项目丢失的情况,直接导致PyCharm不能识别项目,具体原因由于不是很清楚就不过多记录,解决办法是重建项目】

总结:

1. 在有成功运行的源代码的前提下,新项目出现bug时可与源代码进行对照,从而排查问题

2. 每次进行git操作后,可先git status查看状态或git log查看更改日志,确保文件没有丢失。

                

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值