Git安装和配置,使用场景技巧,规范

149 阅读6分钟

git入门学习视频

git入门小游戏

Visualizing Git

  1. Git安装和配置

参照现成教程:Git使用

  1. Git本地仓库

Git本地仓库包括 Git 工作区、暂存区和版本库:

下面这个图展示了工作区、版本库中的暂存区和库之间的关系(借用一下视频中的图片):

  • 工作区: 就是你在电脑里能看到的目录。(我们平时写代码空间就是工作区)
  • 暂存区: 英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。(当我们写完一部分代码可以使用git add将文件提交到暂存区,暂存区起到一个快照的作用,当出现重大错误操作时,可以通过回退git reset回退到错误发生之前的版本)

Git简单的回退操作:blog.csdn.net/kikajack/ar…

  • 版本库: 工作区有一个隐藏目录 . git,这个不算工作区,而是 Git 的版本库。(版本库是代码的本地仓库,保存代码的所有信息,其实本地仓库和远程仓库一样,只是一个在本地,一个在服务器上)

注意****Git 工作区、暂存区和版本库之间的Git指令,先看一下,下面会详细讲解,2-3节建议看完下面git操作指令再回来消化一边

  1. Git远程仓库

远程仓库相当于本地仓库的克隆库

注意****Git 本地仓库和远程仓库之间的Git指令,先看一下,下面会详细讲解,2-3节建议看完下面git操作指令再回来消化一边

  1. Git基本操作

常用指令:git add、git commit、git pull、git push,git reset。 其他的稍微记一下就行。

Git 仓库创建###### git init在当前目录创建一个Git仓库
###### git init 新建一个目录,在目录下创建Git代码库
克隆已有仓库###### git clone 拷贝一份远程仓库,也就是下载一个项目。
添加修改文件###### git add <file1]> ...添加指定文件到暂存区
##### git add 添加指定目录的所有文件到暂存区
###### git add -A 或git add -all添加所有文件到暂存区
###### git add .添加当前目录的所有文件到暂存区
删除文件###### git rm 删除工作区文件。
比较文件###### git diff比较文件的不同,即暂存区和工作区的差异。(主要用于解决冲突)
提交文件###### git commit提交暂存区到本地仓库。相当于git commit -a,提交所有更改
###### git commit -m "msg"提交暂存区所有文件到本地仓库,并添加本次提交的备注信息。
###### git commit ... -m 提交指定文件到本地仓库,并添加本次提交的备注信息。
###### git commit --amend -m 如果代码没有任何新变化,则用来改写上一次commit的备注信息
回退版本(撤销)###### git reset回退版本。只回退暂存区,工作区保持不变
###### git reset 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
###### git reset --hard重置暂存区与工作区,与上一次commit保持一致
删除文件###### git mv移动或重命名工作区文件。
查看历史###### git log查看历史提交记录(即当前分支的版本历史)
远程仓库操作###### git remote远程仓库操作(不详述,我没用过)
拉取远程代码库###### git fetch从远程获取代码库
###### git pull从远程获取代码库并合并(相当于git fetch+git merge)
提交代码###### git push上传本地代码库至远程并合并
  1. 分支管理

创建分支###### git branch 创建分支branchname
查看分支###### git branch查看本地分支
###### git branch -a查看所有分支(本地+远程)
###### git branch -r查看远程分支
删除分支###### git branch -d 删除分支branchname
###### git checkout 切换分支branchname
切换分支###### git checkout -b 创建并切换分支branchname
合并分支###### git merge 将分支branchname合并到当前分支
查看分支状态###### git status查看分支当前的状态,显示有变更的文件。
删除远程分支###### git push origin -d 删除远程分支
合并分支###### git merge branch1把当前分支合并到branch1分支
  1. 常见Git场景

  1. 拉取远程代码

日常开发过程中,由于并行开发,我们可能要用到别人的最新代码,所以经常要拉取代码

操作: git commit +git pull

如果你 有代码修改,在执行git pull之前一定要先执行git commit,否则可能会出错。

建议在每一个git pull操作之前都执行git commit,不要硬拉代码,除非你没有对代码进行任何的修改。如果你git pull一个全新的代码仓库就不需要git commit (没有修改,不需要合并)

  1. 提交本地代码

操作:git commit + git pull + git push

git commit 将新的代码提交到本地仓库 (提交代码之前一定将代码先git commit到本地仓库,否则代码提交不到远程仓库)

git pull 拉取远程代码,并将远程代码与本地代码合并(每次push代码之前都要进行git pull, 防止git push时代码冲突

git push 提交本地仓库到远程仓库

git push之前一定要,一定要先git pull最新代码到本地仓库,防止代码冲突。远程仓库没有处理代码冲突的功能,将代码拉取到本地仓库,处理完代码冲突再git push代码到远程仓库。

这一部分git入门学习视频有更为详细的讲解

  1. 合并本地分支

操作:git checkout + git merge

git checkout 切换到branch1分支

git merge 将合并到

  1. 创建分支并推送到远程

git checkout -b branch1 //在当前分支下创建branch1的本地分支

git push origin branch1 //将branch1分支推送到远程

git branch --set-upstream-to=origin/branch1 ****//将本地分支branch1关联到远程分支branch1上

  1. 回退公共远程分支

使用git reset会退远程分支需要两个人分别操作,比较麻烦,可以使用git revert撤销自己的一次commit。参照Git恢复之前版本的两种方法reset、revert(图文详解)

  1. Pull Request和Merge Request

Pull Request 与 Merge Request 的区别

Git开发--git merge request 步骤

个人理解:Merge Request主要用于远程分支的合并,而git merge用于本地分支的合并

  1. git merge和git rebase合并分支的区别

注意:git merge 之前最好把目标分支和自己的分支git pull一下

  1. 代码回滚(回退工作区、暂存区、本地分支、远程分支)

git撤销和回滚操作

  1. 合并某次commit到指定分支

git cherry-pick

使用场景:当别人的代码出现bug时,他的bugfix代码合并到develop需要很长的时间,这时可以向他要一个bugfix的commit,把这个commit合并到自己的分支就可以啦。