User Tools

Site Tools


git

Git作为VCS(Version Control System)的一种,与另一个比较有名的svn的最大区别在于Git是分布式,svn是集中式。具体来说,Git不分服务器端和客户端,只有远程仓库和本地仓库,两者完全平等,因此,Git可以离线查看日志和提交代码。

Git操作最佳实践

  • 每次完成一个最细粒度的功能点或者每修复一个bug就提交一次代码
  • 代码提交的message最好写对应的任务编号加任务描述(如果有任务管理系统的话)
  • 每天早上pull一次代码,每天晚上pull并push一次代码,其他在有需要的时候pull push代码
  • 未完待续..

新手入门

很多时候并不需要每个人都创建仓库,只需要一个人创建既可。因此我们从git clone到git push到git pull的整个过程介绍Git入门。

推荐教程

常用操作

  • Clone远程仓库(repository):git clone <repository_url>
  • 添加untracked file:git add <file_path>
  • 提交tracked files:git commit -m <message>
  • 推送到远程仓库:git push
  • 获取最新修改:git pull
  • 查看工作区状态:git status
  • 查看日志:git log
  • 回收未提交代码:git stash
  • 恢复未提交代码:git stash pop
  • 放弃所有未提交代码(不含新增文件):git checkout -- .
  • 切换分支:git checkout <branch_name>
  • 退出git pull时跳转后的消息页面,直接输入:q 然后敲击回车即可退出(vim编辑器)

git生成并添加ssh公钥方法

*详见连接: http://git.mydoc.io/?t=180845

Git打包不同分支的修改

 <note> 

暂未找到打包为zip文件的方法

 </note> 

本方法用于提交包含目录结构的近期修改,例如打包包含目录结构的自上次发布以来的所有修改,以用于增量更新等。

  1. Git切换到需要打包的分支
  2. 使用命令打包文件,git diff --name-only <branch_name_to_be_compared> <current_branch_name> | tar czf <tar_file_name_with_path.tar.gz> -T -

Git命令行如何记住密码

# 15分钟内不需要再次输入密码
git config credential.helper cache
# 已经记住密码的情况下,想更改用户
git config --unset-all credential.helper
git config --global --unset-all credential.helper
sudo git config --system --unset-all credential.helper

Git分支管理

为什么要使用Git分支管理

  1. 开发阶段,出现重大变化,老的版本不想丢掉,新的版本要开始做,因此需要分支管理
  2. 已上线项目,加功能、改bug,如果动了正在运行的代码所在分支,导致不敢发布
  3. 不同的目的需要不同的分支来管理,比如改bug要用改bug的分支,新功能要用新功能的分支

为什么用Git Flow进行分支管理

  1. Git Flow自动化分支管理,基于哪个分支开新分支,如何合并分支,都有标准化流程
  2. Git Flow得到了大多数工具的支持,例如命令行、Source Tree、IntelliJ Idea等
  3. Git Flow是分支流程管理规范,也是工具,通过工具规范化便捷化分支管理

Git Flow基本教程

 img

使用举例:

  1. 开发新功能:git flow feature start membership,git flow feature finish membership
  2. 修复线上bug: git flow hotfix start dependent-injection, git flow hotfix finish dependent-injection
  3. 发布新版本: git flow release start 2.0, git flow release finish 2.0

Git Flow详细教程

Git Flow 常见问题

使用Git flow进行分支管理,是否需要执行git commit和git push等操作?

Git flow是分支管理规范与工具,因此对原本的代码提交、拉取等没有任何影响,只是简化了分支切换、合并和删除操作。

使用Git flow进行分支管理时,我怎么判断应该基于哪个分支创建新的分支?

Git flow默认master和develop两个分支为基础分支,创建feature和release分支时基于develop,创建hotfix分支时基于master,与当前所在分支无关。详见Git flow分支管理示意图

git.txt · Last modified: 2023/03/08 16:09 by xujianglong