git的使用
1.git介绍
git是什么:git是目前最先进的分布式版本控制系统
git的诞生:
- 为了linux的代码管理
- linux的创建者linus反对使用CVS和SVN,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用
- 2002年,代码库很难继续通过手工方式管理了,于是Linus选择了一个商业的版本控制系BitKeepe
- 2005年,开发Samba的Andrew试图破解BitKeeper的协议,被BitMover公司发现并收回Linux社区的免费使用权
- Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已由Git管理了
2.git核心概念
git 最核心的一个概念就是工作流
- 工作区(Workspace)是电脑中实际的目录。
- 暂存区(Index)类似于缓存区域,临时保存你的改动。
- 仓库区(Repository),分为本地仓库和远程仓库

3.git配置
- /etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。
若使用 git config 时用 --system 选项,读写的就是这个文件。
2. ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。
若使用 git config 时用 --global 选项,读写的就是这个文件。
3. git/config 文件: 当前工作目录中的 .git/config 文件
这里的配置仅仅针对当前项目有效。
4.git仓库
4.1创建本地仓库
- 确定好存放代码的目录:mdkir mygit
- 进入到mygit目录后执行命令:git init
- 这时候会在mygit目录下生成一个.git文件夹,本地git仓库创建完成
- 创建一个readme.txt文件,并输入对项目的描述信息
- 提交readme.txt到本地缓存区:git add readme.txt
- 提交readme.txt到本地仓库: git commit -m “first commit”
4.2创建远程仓库
- 登录github,然后,在右上角“+”找到“Create a new repo”按钮,创建一个新的仓库
- 在Repository name填入mygit,其他保持默认,点击“Create repository”按钮,就成功地创. 建了一个新的Git仓库
- 本地仓库与远程仓库进行关联git remote add origin git@github.com:xxxx/mygit.git
- 把本地仓库的所有内容推送到远程仓库:git push -u origin master
注意:第一次推送master分支时,加上了-u参数,Git把本地的master分支内容推送的远程master分支,同时把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就不用指定分支名称了
4.3 从远程仓库克隆代码
- 前面我们讲了现有本地库,后有远程库,然后把本地库和远程库做了关联。
- 在实际工作中,我们通常是先有远程库,然后从远程库克隆代码到本地进行开发
具体流程:
- 登录github,然后,在右上角“+”找到“Create a new repo”按钮,创建一个新的仓库
- 在Repository name填入mygit,选择“Initialize this repository with a README”,其他保持默认,点击“Create repository”按钮,就成功地创建了一个新的Git仓库
- 在本地切换到保存代码的路径,执行命令:git clone git@github.com:xxxx/mygit.git
5.git常用命令
5.1 分支操作
- 列出所有本地分支: git branch
- 列出所有本地分支和远程分支:git branch -a
- 新建一个分支,但依然停留在当前分支:git branch [branch-name]
- 新建一个分支,并切换到该分支:git checkout -b [new_branch] [remote-branch]
- 切换到指定分支,并更新工作区:git checkout [branch-name]
5.2 文件添加
- 添加当前目录的所有文件到暂存区:git add .
- 添加指定文件到暂存区:git add <file1> <file2> …
- 添加指定目录到暂存区,包括其子目录:git add <dir>
5.3 代码提交
- 添加指定文件到暂存区:git add <file1> <file2> …
- 提交暂存区到仓库区:git commit -m [message]
- 修改上次的提交信息:git commit --amend
- 上传本地指定分支到远程仓库:git push
5.4 代码拉取
- 更新远程仓库的所有变动(只更新最新的分支好,不做代码合并):git fetch
- 更新远程仓库的变化,并与本地分支合并:git pull [remote] [branch]
5.5 git fetch 和 git pull的差异




5.6 撤销修改
- 查看本地哪些文件被修改:git status
- 撤销工作区文件的修改,就是让这个文件回到最近一次git commit或git add时的状态:git checkout -- file1
- 如果文件已经添加到暂存区,同过以下命令撤销后文件又回到工作区,工作区文件是修改状态:git reset HEAD file1
5.7 冲突解决
冲突一般是在我们合并代码的时候会经常出现,假设我们要将dev分支的代码合并到master分支
- git checkout master
- git merge dev(这时候可能会出现冲突)
- git status(可以查看哪些文件冲突)
- git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容
- 我们打开对应的文件进行冲突解决
- 解决完之后把文件需要重新进行推送
git add file1
git commit -m ”conflict fixed”
git push
6.git分支规范

7.git一些案例
7.1 创建远程仓库

7.2 配置ssh

7.3 下载远程代码

7.4 提交代码

7.5 更新代码之git fetch


7.6 更新代码之git pull


7.7 冲突解决




7.8 撤销修改





浙公网安备 33010602011771号