社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

Will Bickford

Will Bickford 最近创建的主题
Will Bickford 最近回复了
6 年前
回复了 Will Bickford 创建的主题 » 在远程存储库中使用Git的正确方法是什么?

听起来是Git的一个很好的用例。要记住的一点是Git是一个分布式版本控制系统。每个开发人员都有自己的存储库,在将工作发布到生产环境之前,您需要在其中设置一个集中的“源站”存储库,在那里共享工作。

下面链接的是一个流行工作流的介绍:Gitflow。要记住的主要一点是,您需要在源代码历史记录中标记特定的点以进行测试,然后在测试成功后才将这些更改合并到master中。

https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow

建议的分支设置

为一个3人的团队简化Gitflow,您可能需要从两个分支开始:一个分支用于要生成的每个环境 建造 为了。

  • master=>生成部署到生产环境中
  • dev=>生成部署到测试

样本更新程序

下面的步骤概述了一种发布到测试和生产环境的方法。

  • 将更改提交到 dev 把它们推到原点
  • 开发完成后,标记 DEV 带版本的分支(例如 dev/1.0.0 )
  • 将该提交推送到测试环境并验证它
  • 如果测试通过,则合并 偏差/1.0.0 master ,生成并部署到生产环境中
  • 如果测试失败,请使用上面的步骤处理另一个修复。
  • 你可能最终会合并 dev/1.0.2 例如,在下一次正式部署之前
  • 当你推动生产,标签 master/1.0.2 所以你知道它已经上线了

通常,您的生产环境应该通过不直接涉及Git的部署过程进行更新。您将需要设置一个从存储库中的特定标记版本部署代码的构建。您可以对该部分使用现有的FTP更新过程。

阅读材料

这里有更多的链接可以开始。希望这有帮助!

6 年前
回复了 Will Bickford 创建的主题 » 不允许从Git中的分支进行分支

git master

#!/bin/bash
cmd=$1
opt=$2
branch=$3
parent=$4
if [[ $cmd = "checkout" ]] && [[ $opt = "-b" ]]; then
  if [ -z "$parent" ]; then
    parent="master"
  fi
  /usr/bin/git checkout -b $branch $parent
else
  /usr/bin/git "$@"
fi

chmod +x /path/to/git-wrapper.sh
alias git=/path/to/git-wrapper.sh
mkdir test
cd ./test
git init
echo "First line" >readme.md
git add readme.md
git commit -m "Initial commit"
git checkout -b test1
echo "Second line" >> readme.md
git commit -am "Second line"
git checkout -b test2
echo "Third line" >> readme.md
git commit -am "Third line"
git checkout master
git branch -a
git log
git merge test1
git merge test2

Initialized empty Git repository in ...
[master (root-commit) 11bd292] Initial commit
 1 file changed, 1 insertion(+)
 create mode 100644 readme.md
Switched to a new branch 'test1'
[test1 4ace272] Second line
 1 file changed, 1 insertion(+)
Switched to a new branch 'test2'
[test2 54b7fff] Third line
 1 file changed, 1 insertion(+)
Switched to branch 'master'
* master
  test1
  test2
Updating 11bd292..4ace272
Fast-forward
 readme.md | 1 +
 1 file changed, 1 insertion(+)
Auto-merging readme.md
CONFLICT (content): Merge conflict in readme.md
Automatic merge failed; fix conflicts and then commit the result.

test1 test2