一:为什么需要使用Git进行代码管理?
- 场景一:备份
- 场景二:代码还原
- 场景三:协同开发
- 场景四:追溯问题代码的编写人和编写时间!
Git是分布式的,Git不需要有中心服务器,我们每台电脑拥有的东西都是一样的。我们使用Git并且有个中心服务器,仅仅是为了方便交换大家的修改,但是这个服务器的地位和我们每个人的PC是一样的。我们可以把它当做一个开发者的pc就可以就是为了大家代码容易交流不关机用的。没有它大家一样可以工作,只不过“交换”修改不方便而已。
二:Git的工作流程
命令如下:
1. clone(克隆): 从远程仓库中克隆代码到本地仓库
2. checkout (检出):从本地仓库中检出一个仓库分支然后进行修订
3. add(添加): 在提交前先将代码提交到暂存区
4. commit(提交): 提交到本地仓库。本地仓库中保存修改的各个历史版本
5. fetch (抓取) : 从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少。
6. pull (拉取) : 从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于
fetch+merge
7. push(推送) : 修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库
三:Git的安装和配置
1.下载地址: https://git-scm.com/download
默认安装路径,一直安装下去即可。
2.双击下载的安装文件来安装Git。安装完成后在电脑桌面(也可以是其他目录)点击右键,如果能够看到如下两个菜单则说明Git安装成功
Git GUI:Git提供的图形界面工具
Git Bash:Git提供的命令行工具
当安装Git后首先要做的事情是设置用户名称和email地址。这是非常重要的,因为每次Git提交都会使用该用户信息3. 为常用指令配置别名(可选)
有些常用的指令参数非常多,每次都要输入好多参数,我们可以使用别名。
1. 打开用户目录,创建 .bashrc 文件(touch ~/.bashrc)配置文件
2. 在 .bashrc 文件中输入如下内容:
#用于输出git提交日志 alias git-log='git log --pretty=oneline --all --graph --abbrev-commit' #用于输出当前目录所有文件及基本信息 alias ll='ls -al'
3. 打开gitBash,执行 source ~/.bashrc
四:本地仓库
1.获取本地的仓库
1)在电脑的任意位置创建一个空目录(例如test)作为我们的本地Git仓库
2)进入这个目录中,点击右键打开Git bash窗口
3)执行命令git init
4)如果创建成功后可在文件夹下看到隐藏的.git目录。
注意:如果电脑的文件无法查看自己隐藏文件但是在git里面可以查看文件,可以打开查案看隐藏文件的权限
2.基础操作指令
1、*查看修改的状态(status):git status
2、*添加工作区到暂存区(add) :git add .
3、*提交暂存区到本地仓库(commit):git commit -m '注释内容'
4、*查看提交日志(log):git log [option]
options
--all 显示所有分支
--pretty=oneline 将提交信息显示为一行
--abbrev-commit 使得输出的commitId更简短
--graph 以图的形式显示5、版本回退:git reset --hard commitID
commitID 可以使用 git-log 或 git log 指令查看
如何查看已经删除的记录?git reflog
这个指令可以看到已经删除的提交记录3.基础案例:
#####################仓库初始化###################### # 创建目录(git_test01)并在目录下打开gitbash 略 # 初始化git仓库 git init #####################创建文件并提交##################### # 目录下创建文件 file01.txt 略 # 将修改加入暂存区 git add . # 将修改提交到本地仓库,提交记录内容为:commit 001 git commit -m 'commit 001' # 查看日志 git log ####################修改文件并提交###################### # 修改file01的内容为:count=1 略 # 将修改加入暂存区 git add . # # 将修改提交到本地仓库,提交记录内容为:update file01 git commit --m 'update file01' # 查看日志 git log # 以精简的方式显示提交记录 git-log ####################将最后一次修改还原################## # 查看提交记录 git-log # 找到倒数第2次提交的commitID 略 # 版本回退 git reset commitID --hard
4.分支
1、查看本地分支 命令:git branch
2、创建本地分支 命令:git branch 分支名
3、*切换分支(checkout) 命令:git checkout 分支名
我们还可以直接切换到一个不存在的分支(创建并切换)命令:git checkout -b 分支名
4、*合并分支(merge)
一个分支上的提交可以合并到另一个分支 命令:git merge 分支名5、删除分支 不能删除当前分支,只能删除其他分支
git branch -d b1 删除分支时,需要做各种检查
git branch -D b1 不做任何检查,强制删除称分支练习:
###########################创建并切换到dev01分支,在dev01分支提交 # [master]创建分支dev01 git branch dev01 # [master]切换到dev01 git checkout dev01 # [dev01]创建文件file02.txt 略 # [dev01]将修改加入暂存区并提交到仓库,提交记录内容为:add file02 on dev git add . git commit -m 'add file02 on dev' # [dev01]以精简的方式显示提交记录 git-log ###########################切换到master分支,将dev01合并到master分支 # [dev01]切换到master分支 git checkout master # [master]合并dev01到master分支 git merge dev01 # [master]以精简的方式显示提交记录 git-log # [master]查看文件变化(目录下也出现了file02.txt) 略 ##########################删除dev01分支 # [master]删除dev01分支 git branch -d dev01 # [master]以精简的方式显示提交记录 git-log
五:远端仓库
1.注册码云
1.要想使用码云的相关服务,需要注册账号(地址:https://gitee.com/signup )
2.配置SSH公钥
- 生成SSH公钥 ssh-keygen -t rsa
- 获取公钥 cat ~/.ssh/id_rsa.pub
- 验证是否配置成功 指令:ssh -T git@gitee.com
配置成功后说明本地仓库和远仓库进行了管理,就可以将本地的代码推送去远程的仓库
3.操作远程仓库
1、添加远程仓库
此操作是先初始化本地库,然后与已创建的远程库进行对接
命令: git remote add <远端名称> <仓库路径>
2、查看远程仓库
命令:git remote
3、推送到远程仓库
命令:git push [-f] [--set-upstream] [远端名称 [本地分支名][:远端分支名] ]
查询远程仓库
4、 本地分支与远程分支的关联关系
查看关联关系我们可以使用 git branch -vv 命令
5、从远程仓库克隆
如果已经有一个远端仓库,我们可以直接clone到本地。
命令: git clone <仓库路径> [本地目录]
6、从远程仓库中抓取和拉取
远程分支和本地的分支一样,我们可以进行merge操作,只是需要先把远端仓库里的更新都下载到本地,再进行操作。
抓取 命令:git fetch [remote name] [branch name]练习:远程仓库操作
##########################1-将本地仓库推送到远程仓库 # 完成4.1、4.2、4.3、4.4的操作 略 # [git_test01]添加远程仓库 git remote add origin git@gitee.com/**/**.git # [git_test01]将master分支推送到远程仓库,并与远程仓库的master分支绑定关联关系 git push --set-upstream origin master ###########################2-将远程仓库克隆到本地 # 将远程仓库克隆到本地git_test02目录下 git clone git@gitee.com/**/**.git git_test02 # [git_test02]以精简的方式显示提交记录 git-log ###########################3-将本地修改推送到远程仓库 # [git_test01]创建文件file03.txt 略 # [git_test01]将修改加入暂存区并提交到仓库,提交记录内容为:add file03 git add . git commit -m 'add file03' # [git_test01]将master分支的修改推送到远程仓库 git push origin master ###########################4-将远程仓库的修改更新到本地 # [git_test02]将远程仓库修改再拉取到本地 git pull # 以精简的方式显示提交记录 git-log # 查看文件变化(目录下也出现了file03.txt) 略