1.基本概念:
1.1git的代码托管方式
(上面是服务器端,下面是本地的),本地也保存以往的版本
1.2svn的代码托管方式
其中本地只保存最新的版本
1.3四个工作区:
工作区:平时存放项目代码的地方
暂存区:临时存放改动的代码文件,并保存即将提交到文件表的信息
仓库区:安全存放数据的位置,有提交到所有版本的数据,HEAD指的是最新放入仓库的版本
远程仓库:托管代码的服务器
1.4文件的四种状态:
untracked:未跟踪,此文件在文件夹中,并没有加入到git库中。
unmodify:文件已经入库,但是没有修改。使用git rm移出版本库,变为untracked。
modified:文件除了被修改之外没有进行其他操作。使用git checkout放弃修改,变为unmodify状态。
staged:暂存状态,使用git reset HEAD filename 取消暂存,文件变为modified状态。
1.5分支结构:
提交到库里面的文件是不同的版本,可以产生分支,HEAD指向的是当前版本的信息。
2.有关git 的操作
2.1本地的git操作
基本操作:
(1)使用git init 命令将一个空目录变为一个可以通过git管理的仓库
(2)第一次使用git命令提交代码,需要设置用户名以及邮箱:
git config --global user.email “you@qq.com”
git config --global user.name “your name”
(3)使用git add filename 将文件添加到暂存区,文件就会变为staged状态
(4)使用git status 查看仓库状态
(5)使用git commit -m “版本描述信息” 提交版本到仓库
(6)使用git log 查看提交的历史记录
(7)使用git resrt --hard HEAD^ 回退版本到上一个版本
(8)使用git reflog查看对仓库的操作日志
补充:
(9) 使用git diff HEAD 比较当前内容与最后一次提交版本的差异
(10)使用git checkout filename 放弃对工作区代码的修改,就会从modify状态回到unmodify状态
(11)使用git reset HEAD filename 从暂存区撤销,文件就会变为modify状态
(12)使用git rm filename 删除一个文件,如果此时只是提交到暂存区,需要cmmit后才在版本库中删除
分支操作:
(1)查看分支:git branch
(2)创建分支:git branch 分支名称
(3)切换分支:git checkout 分支名称
合并分支如下:
(4)切换分支:git checkout 分支名
(5)合并某个分支到当前分支:git merge 分支名
上述截图显示无法合并的原因在于:主分支的代码已经删除了部分,但是dev分枝的代码中仍保留删除的那部分代码,因此git比较疑惑已经删除的恶那部分代码到底是删除还是保留:因此,此时打开Main.c程序显示如下:
修改之后提交再次合并:
创建分支并删除分支:
(6)创建并切换到该分支:git checkout -b 分支名称
(7)删除分支,不能删除当前所处分支,切换到其他分支再删除:git branch -d 分支名称
2.2本地版本仓库和服务器端版本仓库的交互操作
注册工作:
首先需要注册“码云”,然后再linux终端执行下面操作:
输入第一行(ssh -keygen -t rsa -C “you@qq.com”)之后,会生成通信密钥,这个密钥在home/stu/.ssh/下
然后按一次回车
再输入两次密码
如下图所示:
到.ssh目录下
输入:cat id_rsa.pub命令得到ssh-rsa……
将终端里面得到的ssh-rsa …………
复制到公钥里面(前提是删除之前的公钥),然后点击确定。
从服务端下载代码到本地:
(1)克隆项目:git clone 项目地址
从本地上传到服务器:
(2)拉取远程服务器上的分支更新到本地:git pull origin 分支名
(3)提交分支到远程仓库:git push origin 分支名
(4)提交分支到远程仓库,并跟踪分支:git push -u origin 分支名