安装

  1. #1.下载对应版本:https://git-scm.com/download
  2. # 2.安装git:在选取安装路径的下一步选取 Use a TrueType font in all console windows 选项

将已有的文件夹 - 初始化为git仓库
  1. cd 目标文件夹内部
  2. git init

在指定目录下 - 初始化git仓库
  1. cd 目标目录
  2. git init 仓库名

在仓库目录终端下 - 设置全局用户
  1. git config --global user.name '用户名'
  2. git config --global user.email '用户邮箱'
  3. 注:在全局文件 C:\Users\用户文件夹\.gitconfig新建用户信息,在所有仓库下都可以使用
  4. """

在仓库目录终端下 - 设置局部用户
  1. git config user.name '用户名'
  2. -- 用户名
  3. git config user.email '用户邮箱'
  4. -- 用户邮箱
  5. 注:在当前仓库下的config新建用户信息,只能在当前仓库下使用
  6. 注:一个仓库有局部用户,优先使用局部用户,没有配置再找全局用户
  7. """

查看仓库状态
  1. git status
  2. -- 查看仓库状态
  3. git status -s
  4. -- 查看仓库状态的简约显示

撤销工作区操作:改、删(了解)
  1. git checkout .
  2. -- 撤销所有暂存区的提交
  3. git checkout 文件名
  4. -- 撤销某一文件的暂存区提交

工作区内容提交到暂存区
  1. git add .
  2. -- 添加项目中所有文件
  3. >: git add 文件名
  4. -- 添加指定文件

撤销暂存区提交:add的逆运算(很少使用)
  1. git reset HEAD .
  2. -- 撤销所有暂存区的提交
  3. git reset 文件名
  4. -- 撤销某一文件的暂存区提交
  5. git reset .
  6. -- 撤销所有暂存区的提交

提交暂存区内容到版本库
  1. git commit -m "版本描述信息"
  2. #实际开发过程中版本描述信息必须填上

撤销版本库提交:commit的逆运算
  1. """
  2. 回滚暂存区已经提交到版本库的操作:
  3. 查看历史版本:
  4. git log
  5. git reflog
  6. 查看时间点之前|之后的日志:
  7. git log --after 2018-6-1
  8. git log --before 2018-6-1
  9. git reflog --after 2018-6-1
  10. git reflog --before 2018-6-1
  11. 查看指定开发者日志
  12. git log --author author_name
  13. git reflog --author author_name
  14. 回滚到指定版本:
  15. 回滚到上一个版本:
  16. git reset --hard HEAD^
  17. git reset --hard HEAD~
  18. 回滚到上三个版本:
  19. git reset --hard HEAD^^^
  20. git reset --hard HEAD~3
  21. 回滚到指定版本号的版本:
  22. git reset --hard 版本号 (重点)
  23. eg: git reset --hard 35cb292
  24. """

过滤文件

  1. .gitignore 文件
  2. # 1)在仓库根目录下创建该文件
  3. # 2)文件与文件夹均可以被过滤
  4. # 3)文件过滤语法
  5. 在.gitignore文件中写的文件不会被提交到git

多分支开发

分支操作
  1. 1.创建分支
  2. git branch 分支名
  3. 2.查看分支
  4. git branch
  5. 3.切换分支
  6. git checkout 分支名
  7. 4.创建并切换到分支
  8. git checkout -b 分支名
  9. 5.删除分支
  10. git branch -d 分支名
  11. 6.查看远程分支
  12. git branch -a
  13. 7.合并分支
  14. git merge 分支名
  15. dev分支合并到master分支:切换到master分支,执行合并dev分支的命令
  16. """
  17. """
  18. 1)多个开发者都是在一个分支上进行开发,不出意外,该分支一定叫dev(协同开发)
  19. 2)如果出现一个特殊任务(敏感任务),与正常业务关系不紧密,甚至可能大的影响正常的dev分支开发,可以依赖dev开一个子分支,进行开发,开发完毕后合并到dev分支,再删除该分支即可
  20. 3)所有的开发任务都可以在dev分支上进行(除非公司硬性要求不能直接在dev分支开发,只能在dev子分支开发,测试通过后才能合并给dev
  21. """

远程git开发

两种本地与远程仓库同步

  1. """
  2. 1)你作为项目仓库初始化人员:
  3. 线上要创建空仓库 => 本地初始化好仓库 => 建立remote链接(remote add) => 提交本地仓库到远程(push)
  4. 2)你作为项目后期开发人员:
  5. 远程项目仓库已经创建成功 => 复制远程仓库到本地(clone) => 进入仓库就可以进行接下来的开发
  6. """

remote源操作

  1. """
  2. 1)查看仓库已配置的远程源
  3. >: git remote
  4. >: git remote -v
  5. 2)查看remote命令帮助文档
  6. >: git remote -h
  7. 3)删除远程源
  8. >: git remote remove 源名
  9. eg: git remote remove origin
  10. 4)添加远程源
  11. >: git remote add 源名 源地址
  12. >: git remote add orgin git@gitee.com:doctor_owen/luffyapi.git
  13. 5)提交代码到远程源
  14. >: git push 源码 分支名
  15. 6)克隆远程源
  16. >: git clone 远程源地址
  17. """
  18. """
  19. 1)通过克隆方式连接远程源,默认远程源名就叫origin;所以主动添加远程源来连接远程仓库,源码也用origin
  20. 2)本地一个仓库只需要和远程一个源进行同步,所以只需要连接一个远程源,如果还想把本地代码同步给第三个平台,那么可以通过主动添加远程源来连接第三个平台的远程仓库,此时的源码就不能再叫origin了,比如online都可以
  21. 3)pull和push都可以提供选择不同的源码,和不同的远程仓库交互
  22. """

采用ssh协议连接远程源

创建电脑的公钥私钥
  1. 官网:https://gitee.com/help/articles/4181#article-header0
  2. 本机命令,生成公钥:ssh-keygen -t rsa -C "*@*.com"
  3. 邮箱可以任意填写
  4. 本机命令,查看公钥:cat ~/.ssh/id_rsa.pub
  5. 码云线上添加公钥:项目仓库 => 管理 => 部署公钥管理 => 添加公钥 => 添加个人公钥

提交本地代码到远程仓库
  1. git push origin master

如何成为其他码云项目的开发者
  1. """
  2. 1)生成自己电脑的公钥,配置到自己的码云个人公钥中
  3. 2)把自己的码云用户名提供给别人,别人添加你成为项目开发者
  4. 3)自己确认添加,成为开发者,克隆开发项目,进行开发
  5. """

如何成为公司自建git服务器的开发者
  1. """
  2. 1)生成自己电脑的公钥(公钥生成一次就可以了),把它提交给项目管理者
  3. 2)项目管理者添加你公钥,加入开发者,提供给你项目克隆地址
  4. 3)克隆开发项目,进行开发
  5. """

协同开发

  1. """
  2. 1)作为开发者,第一次同步项目(前台已经是项目开发者了)
  3. >: git clone 项目地址
  4. 2)保证自己本地有dev分支,且与远程仓库版本同步(没有就自己新建)
  5. 3)本地开发的代码,必须add、commit到本地版本库后,才和远程仓库进行交互
  6. 4)交互顺序:必须 先拉(pull)后提(push)
  7. 5)必须切换到要交互的分支,在与远程同名的分支进行交互,如本地dev与远程dev交互
  8. >: git checkout dev
  9. >: git add .
  10. >: git commit -m '本次提交的信息提示'
  11. >: git pull origin dev
  12. >: git push origin dev
  13. """

冲突解决

  1. """
  2. 1)在远程仓库和本地仓库版本不一致时,拉取远程仓库版本到本地时,两个版本进入融合,可能会出现版本冲突
  3. 2)定位冲突文件冲突代码,线下沟通冲突代码,整合代码解决冲突
  4. 3)将解决冲突后的代码重新提交到本地版本库
  5. 4)再拉去远程仓库,直到没有冲突,提交本地版本库到远程
  6. """
  7. """
  8. <<<<<<< HEAD # 冲突的开始
  9. # 自己的代码
  10. ======= # 分割线
  11. # 别人的代码
  12. >>>>>>> b63c408abd05b87fc492d40523240561999dba50 # 冲突的结束(版本)
  13. """
  14. """
  15. 1)删除冲突相关标识:冲突的开始、分割线、冲突的结束(版本)
  16. 2)线下沟通,根据实际需求完成代码整合
  17. 3)测试整合后的代码
  18. """
  19. """
  20. 出现冲突的前提:
  21. 1)不同开发者同时操作了同一文件
  22. 2)并且在相同行写了代码
  23. 强调:有业务交际时,版本合并不一定会出现冲突相关的标识,但是可能会带着代码运行崩溃,所有理论上每一次版本合并,都要测试合并后的所有功能(及其之少的情况)
  24. """

远程仓库回滚

  1. """
  2. 用dev分支举例
  3. 1)本地切换到远程要回滚的分支对应的本地分支
  4. git checkout dev
  5. 2)回滚本地分支
  6. git reset --hard 版本号
  7. 3)本地版本强行提交给服务器
  8. git push origin dev -f
  9. """