User Tools

Site Tools


git

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)