一.git安装
从官网下载:https://git-scm.com/downloads
在开始菜单中找到Git文件夹:
打开文件夹下的Git Bash:
输入:
git config --global user.name "名字(英文随便起)"
git config --global user.email "邮箱(你的邮箱)"
二.创建版本库
版本库就是一个目录,目录下的所有文件都可以通过git来管理。
1.创建一个空的目录如下:
$ cd D:
$ mkdir learngit
$ cd learngit
$ pwd
/d/learngit
2.把这个目录变成git可以管理的厂库
$ git init
三.文件添加到版本库
1.写文件
2.添加到版本库
$ git add learn1.txt
3.告诉git文件提交了
$ git commit -m "wrote a file"
四.查看修改
1.修改文件
2.查看修改状态
$ git status
提示告诉我们文件被修改了但是还没有提交
3.查看修改了什么
$ git diff learn1.txt
4.提交两部曲
add+commit
五.版本退回
先修改文本提交一次,加上前面修改提交的两次,我一共修改提交了三次。
1.查看历史记录
$ git log
历史从远到近,最上面的是最近一次修改
2.简洁版查看历史
$ git log --pretty=oneline
一长串黄色的字是版本号,HEAD是当前版本号,HEAD^是上一个版本,HEAD ^^是上上个版本,HEAD~100是前第一百个版本
3.退回上一个版本
$ git reset --hard HEAD^
4.查看文本内容
$ cat learn1.txt
5.回到下一个版本
如果命令窗口没有关掉
git reset --hard 版本号
其中的8fb6是之前一长串黄色字符的前4位
如果命令行关掉了,版本号不记得了
$ git reflog
六.工作区和暂存区
工作区:
电脑中能看到的文件夹
暂存区:
工作区中有个版本库 .git 版本库中有个叫stage(或者叫index)的暂存区
git add将文件提交到暂存区
git commit将暂存区的所有内容提交到当前分支
七.撤销修改
1.先修改文件内容,然后add
git checkout -- learn1.txt
就是让这个文件回到最近一次git commit或git add时的状态
2.
$ git reset HEAD learn1.txt
把暂存区的修改撤销掉(unstage),重新放回工作区
3.先把暂存区的修改撤掉,重放回工作区后用checkout清除修改
这样就可以返回到你add之前没修改的时候
八.删除文件
先add commit一个待删除的文件
$ rm 删除我.txt
现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit;二是checkout回来
1.误删给我回来
$ git checkout -- 删除我.txt
2.下死心要删掉
$ git rm 删除我.txt
然后提交修改
九.远程仓库
1.查看用户目录下有没有.ssh目录,再看该目录下有没有id_rsa和id_rsa.pub这两个文件,没有的话就要再开始菜单的git bash执行下面命令:
$ ssh-keygen -t rsa -C "youremail@example.com"
一路回车取默认值
2.注册github账号,找到设置找到ssh key
文本框复制id_rsa.pub中的内容,然后添加key就可以了
十.添加远程库
1.在your repositories中新建一个仓库
2.在本地库下运行下面命令:
$ git remote add origin 网址
3.将本地数据上传
$ git push -u origin master
4.以后上传数据
$ git push origin master
十一.克隆远程仓库
1.新建一个带readme的仓库
2.克隆
git clone 网址
十二.创建与合并分支
1.创建并切换到新分支
$ git checkout -b dev
或
$ git switch -c 分支名
上面这个命令相当于:
$ git branch dev
$ git checkout dev
2.查看当前分支
$ git branch
3.切换分支
$ git checkout 分支名
或
$ git switch 分支名
4.合并分支
$ git merge 分支名
5.删除分支
$ git branch -d 分支名
十三.分支管理策略
1.合并分支时git会用Fast forward的模式,删除分支后,会丢掉分支信息。
我们需要把Fast forward给禁用掉
$ git merge --no-ff -m "merge with no-ff" 分支名
2.查看分支历史
$ git log --graph
十四.Bug分支
当项目出现了bug,我们需要停下当前的分支,在出bug的分支创建新的分支来修改bug
1.保存工作现场
$ git stash
2.恢复工作现场
$ git stash apply
$ git stash drop
或
$ git stash pop
3.查看工作现场
$ git stash list
4.修改了出现bug的分支后还需要修改该分支的子分支
$ git cherry-pick bug号
5.强制删除未合并的分支
$ git branch -D 分支名
十五.多人协作
1.查看远程库信息
$ git remote -v
2.推送分支
$ git push origin 分支名
master主分支需要时刻同步
dev开发分支需要时刻同步
3.创建远程origin的dev分支到本地
$ git checkout -b dev origin/dev
4.多人推送,自己推送失败
先用git pull把最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突,再推送:
$ git pull
git pull也失败了,原因是没有指定本地dev分支与远程origin/dev分支的链接,根据提示,设置dev和origin/dev的链接:
$ git branch --set-upstream-to=origin/dev dev
然后再pull