这里导入图片,简单易懂
一:安装git
ubuntu: sodu apt-get install git
windows: 网上下载安装即可
查看是否安装成功
git --version
二:创建本地仓库
1,创建一个文件夹用于存放项目文件(myproject)
2,cd 切换到该文件夹下,打开git bash
3,git init 初始化,会创建一个.git的隐藏文件再该目录下,关于版本控制的文件都存放在这里,千万不要动
4,配置个人信息
ubuntu: git config --global user.name 'xxx' 配置用户名称
git config --flobal user.email 'xxx@yy.com' 配置用户邮箱
windows: git config user.name 'xxx'
git config user.email 'xxx@yy.com'
配置完成便可以查看 cat ~/.gitconfig
三:添加文件
在项目文件下创建一个Readme.txt文件,写入以下内容
‘这是一个git学习的项目’
将文件添加到代码库分两步:
1,先添加到暂存区
git add Readme.txt 将Readme.txt文件添加到暂存区
git add . 可以一次性把当前目录中的所有文件都添加到暂存区
2,提交到仓库
git commit -m 'write a readme file'
git commit 命令的 -m 参数后输入的内容是提交说明,命令执行成功后会显示几个文件被改动,没提交一次就会生成一个版本
四:历史版本
git reflog 可以查看所有分支的所有操作记录,包含已经删除的commit记录
git log 不能查看已经删除的commit记录
五:版本回退
1,git reset --hard HEAD
HEAD 表示当前最新版本
HEAD^ 表示当前版本的前一个版本,后面的以此类推
HEAD~1 表示当前版本的前一个版本
HEAD~2 表示当前版本的前两个版本,后面的以此类推
2,git reset --hard 版本号
当版本非常多的时候就选用这种方法,版本号就是每次提交commit生成的hash值,只需要取前几位
六:撤销修改
git status 可查看当前工作区 暂存区 仓库的状态
1,撤销工作区代码
git checkout 文件名
修改文件后没有执行 git add . 运行此命令便可以撤销所有修改,一旦撤销就找不回来,需要在确定抛弃所有修改时使用
2,撤销暂存区代码
a,将暂存区代码撤销到工作区
git reset HEAD 文件名
b,撤销工作区代码
git checkout 文件名
七:对比文件
1,对比本地仓库--工作区
git diff HEAD -- 文件名
2,对比本地仓库不同版本的代码
git diff HEAD HEAD^ -- 文件名
八:文件删除
1,删除工作区中的代码
#直接删除,不用管任何操作
2,删除工作区添加到暂存区但还没有提交到仓库的文件
a,先撤回工作区 git reset HEAD 文件名
b,直接删除 rm 文件名
3,已经提交到版本库
1,删除文件 rm 文件名
2,运行 git add .
3,提交到仓库 git commit -m 'delete some file'
九:远程仓库
这里就以码云为例,因为github服务器在境外,国内访问速度较慢
首先注册一个码云的仓库,然后创建一个空的仓库,比如test
创建好仓库后,会有两个地址,一个https,使用时需要用户名和密码,另一个ssh,需要设置个人账户的公钥管理ssh公钥
完成之后,在家目录下面有一个.ssh的文件夹,里面有一个ssh公钥,一个ssh私钥,公钥用于添加到git上的公钥管理中,私钥自己保管
1,添加远程仓库
a,本地初始化一个仓库,设置远程仓库地址后在push
git remote add origin 用户地址
b,克隆,将远程仓库里面的项目文件clone/download到本地
首先cd到本地存放项目的目录,git clone 用户地址
2,本地仓库推送到远程仓库
git push origin master
3,远程仓库拉取更新到本地仓库
git pull origin master
十:分支管理
正常的开发项目中都是多人协作,每个人的任务一般不会一天就完成,如果把没有完成的代码提交到远程仓库会影响被人工作。git提供了分支的功能就不用担心了,
可以创建一个自己的分支,在上面干活,想提交就提交,等到工作完成再一次性合并到原来的分支。
查看当前的分支 使用 git branch命令,默认会有一个master分支
1,创建分支
git 仓库默认会用一个主分支master,一般不会在主分支上面干活,它主要用来发布版本
创建一个develop开发分支
git branch develop
再切换到develop分支
git checkout develop
也可以在创建的时候就切换到新建的分支
git checkout -b develop
2,合并分支,在develop分支上面完成任务过后,经过测试,需要合并到master分支上面
a,首先切换到master分支
git checkout master 这个时候查看工作区文件,没有了,但是不要惊慌,这是正常的,因为那个文件是提交到develop分支上的,现在把develop分支的工作区合并到master分支上
b,合并到主分支
git merge develop update git merge 命令用于合并指定分支到当前文件夹
3,删除分支 合并后你也可以删除develop分支
git branch -d develop