User Tools

Site Tools


git

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
git [2018/06/29 13:17]
jordan ↷ 页面vcs:git被移动至git
git [2023/03/08 16:09] (current)
xujianglong ↷ Page moved from 内部资料:git to git
Line 1: Line 1:
 Git作为VCS(Version Control System)的一种,与另一个比较有名的svn的最大区别在于Git是分布式,svn是集中式。具体来说,Git不分服务器端和客户端,只有远程仓库和本地仓库,两者完全平等,因此,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入门。 很多时候并不需要每个人都创建仓库,只需要一个人创建既可。因此我们从git clone到git push到git pull的整个过程介绍Git入门。
  
-## 推荐教程+===== 推荐教程 =====
  
-* [Git教程|菜鸟教程](http://www.runoob.com/git/git-tutorial.html),内容简介,非常适合新手入门 +  * [[http://www.runoob.com/git/git-tutorial.html|Git教程|菜鸟教程]],内容简介,非常适合新手入门 
-* [廖雪峰Git教程](https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/),通俗易懂的中文教程 +  * [[https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/|廖雪峰Git教程]],通俗易懂的中文教程 
-* [Pro git](https://git-scm.com/book/en/v2),纯英文,需要较好的英文阅读能力 +  * [[https://git-scm.com/book/en/v2|Pro git]],纯英文,需要较好的英文阅读能力 
-* [码云帮助文档](http://git.mydoc.io/),使用码云做远程仓库托管服务器时可以参考,主要看其中的Git入门篇,Git进阶篇和Git操作管理+  * [[http://git.mydoc.io/|码云帮助文档]],使用码云做远程仓库托管服务器时可以参考,主要看其中的Git入门篇,Git进阶篇和Git操作管理
  
-## 常用操作+===== 常用操作 =====
  
-{{:git新手入门.png?400|}}+{{:git新手入门.png?400}}
  
-* Clone远程仓库(repository):`git clone <repository_url>` +  * Clone远程仓库(repository):''<nowiki>git clone <repository_url></nowiki>'' 
-* 添加untracked file:`git add <file_path>` +  * 添加untracked file:''<nowiki>git add <file_path></nowiki>'' 
-* 提交tracked files:`git commit -m <message>` +  * 提交tracked files:''<nowiki>git commit -m <message></nowiki>'' 
-* 推送到远程仓库:`git push` +  * 推送到远程仓库:''<nowiki>git push</nowiki>'' 
-* 获取最新修改:`git pull` +  * 获取最新修改:''<nowiki>git pull</nowiki>'' 
-* 查看工作区状态:`git status` +  * 查看工作区状态:''<nowiki>git status</nowiki>'' 
-* 查看日志:`git log` +  * 查看日志:''<nowiki>git log</nowiki>'' 
-* 回收未提交代码:`git stash` +  * 回收未提交代码:''<nowiki>git stash</nowiki>'' 
-* 恢复未提交代码:`git stash pop` +  * 恢复未提交代码:''<nowiki>git stash pop</nowiki>'' 
-* 放弃所有未提交代码(不含新增文件):`git checkout -- .` +  * 放弃所有未提交代码(不含新增文件):''<nowiki>git checkout -- .</nowiki>'' 
-* 切换分支:`git checkout <branch_name>` +  * 切换分支:''<nowiki>git checkout <branch_name></nowiki>'' 
-* 退出git pull时跳转后的消息页面,直接输入`:q`然后敲击回车即可退出(vim编辑器)+  * 退出git pull时跳转后的消息页面,直接输入''<nowiki>:q</nowiki>'' 然后敲击回车即可退出(vim编辑器)
  
-## git生成并添加ssh公钥方法+===== git生成并添加ssh公钥方法 =====
  
-*详见连接: http://git.mydoc.io/?t=180845+*详见连接: http:<nowiki>//</nowiki>git.mydoc.io/?t=180845
  
-Git flow+===== Git打包不同分支的修改 =====
  
-[Git flow创始人博客章](http://nvie.com/posts/a-successful-git-branching-model/)+<HTML> <note> </HTML> 暂未找到打包为zip件的方法 <HTML> </note> </HTML> 本方法用于提交包含目录结构的近期修改,例如打包包含目录结构的自上次发布以来的所有修改,以用于增量更新等。
  
-[Git flow快速入门Gitflow Workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow)+  - Git切换到需要打包的分支 
 +  - 使用命令打包文件,''<nowiki>git diff --name-only <branch_name_to_be_compared> <current_branch_name> | tar czf <tar_file_name_with_path.tar.gz> --</nowiki>''
  
-[git flow的工作流程](https://www.git-tower.com/learn/git/ebook/cn/command-line/advanced-topics/git-flow)+===== Git命令行如何记住密码 =====
  
-## Git flow 常见问题+<code bash> 
 +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 flow进行分支管理,是否需要执行git commit和git push等操作?+</code> 
 + 
 +====== Git分支管理 ====== 
 + 
 +===== 为什么要使用Git分支管理 ===== 
 + 
 +  - 开发阶段,出现重大变化,老的版本不想丢掉,新的版本要开始做,因此需要分支管理 
 +  - 已上线项目,加功能、改bug,如果动了正在运行的代码所在分支,导致不敢发布 
 +  - 不同的目的需要不同的分支来管理,比如改bug要用改bug的分支,新功能要用新功能的分支 
 + 
 +===== 为什么用Git Flow进行分支管理 ===== 
 + 
 +  - Git Flow自动化分支管理,基于哪个分支开新分支,如何合并分支,都有标准化流程 
 +  - Git Flow得到了大多数工具的支持,例如命令行、Source Tree、IntelliJ Idea等 
 +  - Git Flow是分支流程管理规范,也是工具,通过工具规范化便捷化分支管理 
 + 
 +===== Git Flow基本教程 ===== 
 + 
 +{{https://nvie.com/img/git-model@2x.png| img}} 
 + 
 +使用举例: 
 + 
 +  - 开发新功能:git flow feature start membership,git flow feature finish membership 
 +  - 修复线上bug: git flow hotfix start dependent-injection, git flow hotfix finish dependent-injection 
 +  - 发布新版本: git flow release start 2.0, git flow release finish 2.0 
 + 
 +===== Git Flow详细教程 ===== 
 + 
 +[[https://www.git-tower.com/learn/git/ebook/cn/command-line/advanced-topics/git-flow|git flow的工作流程]] 
 + 
 +[[http://nvie.com/posts/a-successful-git-branching-model/|Git flow创始人博客文章]] 
 + 
 +[[https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow|Git flow快速入门:Gitflow Workflow]] 
 + 
 + 
 +===== Git Flow 常见问题 ===== 
 + 
 +==== 使用Git flow进行分支管理,是否需要执行git commit和git push等操作? ====
  
 Git flow是分支管理规范与工具,因此对原本的代码提交、拉取等没有任何影响,只是简化了分支切换、合并和删除操作。 Git flow是分支管理规范与工具,因此对原本的代码提交、拉取等没有任何影响,只是简化了分支切换、合并和删除操作。
  
-### 使用Git flow进行分支管理时,我怎么判断应该基于哪个分支创建新的分支?+==== 使用Git flow进行分支管理时,我怎么判断应该基于哪个分支创建新的分支? ==== 
 + 
 +Git flow默认master和develop两个分支为基础分支,创建feature和release分支时基于develop,创建hotfix分支时基于master,与当前所在分支无关。详见[[https://nvie.com/img/git-model@2x.png|Git flow分支管理示意图]] 
  
-Git flow默认master和develop两个分支为基础分支,创建feature和release分支时基于develop,创建hotfix分支时基于master,与当前所在分支无关。详见[Git flow分支管理示意图](https://nvie.com/img/git-model@2x.png) 
git.1530249475.txt.gz · Last modified: 2021/02/10 21:29 (external edit)