管理开发工程项目代码一般流程
一般流程:
1.首先在gilab的工程项目仓库创建个人开发者分支,如:develop_name
2.在本地 git clone 项目仓库链接 #在本地克隆项目仓库下来
git clone 项目仓库链接
3.执行 git remote -v 命令可以查看当前 Git 仓库配置的远程仓库信息,
包括远程仓库的名称(通常是 origin)和对应的 URL。
git remote -v
4.先同步项目仓库的分支,将从远程仓库获取所有的分支和标签更新,并将其更新到本地仓库中。
git fetch --all
5.基于远程的项目主干创建本地的主干,用于在每次开发之前,把最新的远程主干代码拉取下来合并
git checkout -b develop origin/develop
git pull develop
6.基于远程的开发者分支创建本地的开发者分支,开发自己的代码并提交
git checkout -b develop_name origin/develop_name
git commit -m "[add]commit 1"
git push origin -f develop_name
在开发过程前
1.每次开发之前,都需要切回本地的主干,先拉取最新远程主干的代码(可能有其他人的合并)
git checkout develop
git pull
2.把本地主干的代码合并到本地开发者分支
git checkout develop_name
git merge --no-f develop
3.有冲突就解决冲突,然后再进行开发
在开发过程中
在每次开发提交本地代码前,需要再次,拉取远程主干的代码(先解决可能存在的冲突,再提交代码,
因为在开发过程中,可能有其他人的代码分支,合并到远程的主干上)
1.先提交自己在本地开发者分支写的代码
git add 你的更改
git commit -m "[add]commit 1"
2.切到本地主干分支,拉取最新远程主干的代码
git checkout -b develop origin/develop
git pull develop
3.把本地主干的代码合并到本地开发者分支
git checkout develop_name
git merge --no-f develop
4.有冲突解决冲突,然后再push上去,再在远程的开发者分支提交申请,合并到远程的主干分支上
先解决冲突
git push origin -f develop_name
如果不小心在本地的主干开发了代码,解决方式
1.先提交本地主干代码
git add 你的更改
git commit -m "[add]commit 1"
2.保存代码,保险起见(git stash 命令用于将当前工作目录中的变更(包括已跟踪和未跟踪的文件)
保存到一个临时的存储区域中,以便稍后恢复工作目录的状态。)
git stash
3.基于远程的开发者分支创建本地的开发者分支
git checkout -b develop_name origin/develop_name
4.(git cherry-pick )用于将一个单独的提交应用到当前分支上
git cherry-pick 想要的那个本地分支代码的提交
如 git cherry-pick cfb801e54f380
5.切回本地的主干,回退到没有更改前的版本
git checkout develop
git reset --hard HEAD^ #此前只commit了一次
git merge origin/develop
其他一些用到的命令
git log
git branch -vvv #命令用于列出本地分支以及它们与远程分支的跟踪关系,以及每个分支的最后一次提交的哈希值和注释。
git config --global --list #使用以下命令可以查看 Git 的全局配置信息,包括用户名和邮箱
git config --global user.name "Your Name" #这个命令会将用户名设置为全局配置,这意味着 Git 会在你的所有项目中使用
这个用户名。如果你想要针对特定的项目设置不同的用户名,可以在项目目录中省略 --global 标志。
git config --global user.email "your_email@example.com" #设置邮箱
git config --global credential.helper store #设置 Git 的凭据存储来避免在每次提交时都输入用户名和密码
> 如果要删除,要先切换到其他分支 !!!!注意,不然无法删除
> git branch -D 要删除的分支名
想回退到某个提交:
搞一个新的本地文件夹
git clone “项目代码仓库”
git checkout -b develop_test 某个分支的提交ID
git merge --no-ff upstream_develop(将upstream_develop分支的最新提交合并到当前所在的分支)