1,填写信息
git config --global user.name "用户名"
git config --global user.email "邮箱"
2,创建仓库
git init 初始化仓库(会生成一个.git目录)
mkdir xxx 创建仓库目录
cd 切换目录
pwd 当前位置
3,添加文件到版本库
touch xxx 创建文件
vi xxx 打开文件
git add xxx 将指定文件添加但暂存区
git add. 将当前目录下所有文件添加到暂存区
git commit -m ‘描述‘ 将暂存区保存到版本库
git commit -a -m ‘描述‘ 直接提交到版本库
4,修改文件查看文件和不同
git status 查看当前仓库的状态
git diff 查看此次的修改和上次的不同
5,版本回退
git log 查看之前的日志 git log --pretty=oneline 整理一下
git reset -hard HEAD^ 回退到上一个版本
git reset -hard HEAD^^ 回退到上上个版本
git reset -hard HEAD~100 回退到往上100个版本
6,回退到未来某个版本
git reflog 记录每一次命令
git reset -hard commit id 回退到历史修改版本
7,撤销修改
git checkout -- xxx 撤销工作区修改
git reset HEAD file 撤销暂存区的修改,重放回工作区
对已经提交到版本库的文件直接版本回退
8,删除文件
git rm xxx 从版本库删除文件 也要提交 git commit -m ‘描述‘
9,远程仓库(GitHub)
git remote add origin http://github.com/账号名/仓库名.git origin 是远程库的名字,github的默认叫法
git push -u origin 分支名 把本地仓库的内容推送到github仓库
git push origin master 上面命令第一次推送之后,以后的每次本地提交,使用不带 -u 参数的命令即可
git clone git remote add origin http://github.com/账号名/仓库名.git 克隆仓库
10,分支管理
git checkout -b 分支名 创建并切换分支
git branch 分支名 创建分支
git branch 查看所有分支 当前分支会有*号
git checkout 分支名 切换分支
git merge 要合并的分支名(不是当前) 合并分支
git branch -d 分支名 删除分支
11,解决冲突
问题:分支1修改文件提交后,分支2没有合并分支1修改的文件,也修改并提交了,之后在合并就会有冲突
查看:合并时会报,git status会告诉我们冲突的文件
解决:修改文件手动解决,Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,修改后保存
git log --graph 查看分支合并图
12,bug分支
问题:修复bug时,会通过创建新的bug分支进行修复,然后合并,最后删除,当马上需要解决bug分支上的bug‘时,而当前的分支还没有完成,无法提交
解决:git stash 将当前的工作现场隐藏起来,以后恢复继续工作
git stash 查看隐藏
git stash pop 恢复现场
13,feature
开发一个新实验性功能,最好新建一个feature分支,防止主分支被打乱;
如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。