git
1.git基本
分布式版本管理系统
1)特点
版本管理,可以解决多人同时开发的代码问题,也可以解决找回历史代码的问题。
分布式:同一个Git仓库,可以分布到不同的机器上。
2)创建版本库
1>创建一个目录,在目录下创建版本库,命令: git init
2>创建版本
a 在创建的目录下,创建一个文件code.txt
b 使用命令创建一个版本
git add code.txt
git commit -m '版本1'
c 使用如下命令查看版本记录
git log
d 回到某一个版本,命令:
git reset –hard HEAD^
HEAD^
表示回到前一个版本,HEAD^^
表示回到前前个版本
HEAD-1
表示前1个版本,HEAD-100
表示前100个版本
3>工作区和暂存区
a 工作区
电脑中的目录
b 暂存区
工作区有一个隐藏目录 .git目录,是git的版本库
版本库中stage,即为暂存区
git add
把文件修改添加到暂存区
git commit
把文件提交修改,把暂存区内容提交到版本分支
git status
查看当前工作状态,可以显示修改了哪些文件,有哪些文件未提交
4>撤销修改
未到暂存区,git checkout – 文件名
丢弃工作区的修改
已经到暂存区,git reset HEAD 文件名
即可取消暂存,然后用上面的命令即可撤销修改
已经保存版本,可以参考上面的版本回退
5>对比文件不同
命令:
git diff HEAD –- 文件名
输入命令后,显示的内容中,-代表HEAD版本中文件的内容,+代表工作区文件的内容
6>对比两个文件不同
git diff HEAD HEAD^ -- 文件名
现版本和前一个版本的不同
7>删除文件
rm 文件名
git rm 文件名
确认删除就 git commit
回退就 git reset HEAD 文件名
2.git分支
1)基本操作
1>主分支 master分支,HEAD指向master,master指向最新版本
2>当创建新的分支,git创建一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上
3>此时,工作区的修改和提交就是针对dev分支了,如有新的提交,dev指针向前一步,master指针不动
4>如果dev上的工作完成,进行合并。把master指向dev的当前提交,完成合并。
5>删除dev指针,HEAD指向master
命令:git branch
查看分支
创建分支:git checkout -b dev
切换到新的分支dev
编辑完之后,切换回master:git checkout master
合并:git merge dev
删除分支:git branch -d dev
2)解决冲突
master分支和dev分支都发生了更新时的合并。
手动解决冲突之后,重新提交即可。
3)分支管理策略
通常git采用快速合并模式,但是有些快速合并并不能成而且合并时没有冲突,这个时候会合并之后并做一次新的提交。
禁用快速合并:git merge –-no-ff -m ‘备注‘ 分支名
4)bug分支
git提供了一个stash功能,可以把当前工作现场储藏起来,等以后恢复现场后继续工作
git stash
即可保存现场
之后可以去修复bug
bug修复后,通过禁用快速合并方式与master进行合并
之后回到dev分支干活:git stash list
列出工作现场
git stash pop
恢复工作现场
3.github
1)创建仓库
点击 New repository
add .gitignore 可以忽略的文件
2)添加ssh账户
点击头像下的settings,输入shh公钥
生成ssh公钥方法:
在用户主目录下,编辑文件:.gitconfig 修改git配置,修改为注册github的邮箱和用户名
使用命令生成ssh公钥:ssh-keygen -t rsa -C ‘注册邮箱‘
3)克隆项目
进入github主页的项目仓库页面
复制git地址
在电脑上 git clone 粘贴git地址
克隆出错时,输入下面两条命令:
eval ‘$(ssh-agent -s)’
ssh-add
4)推送代码
推送分支
git push origin 分支名称
本地分支跟踪服务器分支:
git branch –-set-upstream-to=origin/远程分支名称 本地分支名称
从远程分支拉取代码
git pull origin 分支名称