一、创建版本库
1.创建新的文件夹:mkdir 文件夹名
2.查看当前所在位置:pwd
3.git init : 让文件夹变成可以管理的仓库
二、把文件添加到版本库
1.git add 文件名 :添加文件
1.1 git add 文件1 文件2 : 添加多个文件
2.git commit -m "对本次提交的说明描述" :确认 添加文件
三、修改文件后
1.git status :查看仓库当前的状态
2.git diff :查看修改内容, 显示的格式正是Unix通用的diff格式
四、版本回退
1.git log :查看从最近到最远的提交日志,查看提交的历史日志
2.git log --pretty=online :更易于查看提交的日志信息
3.git reset --hard HEAD^ : HEAD表示当前版本,HEAD^表示当前版本的上一个版本,HEAD^^表示上上个版本
4.git reset --hard 版本号:可以回退到指定版本
5.git reflog :查看命令历史
五、工作区&暂存区
https://www.liaoxuefeng.com/files/attachments/919020037470528/0
stage相当于暂存区
https://www.liaoxuefeng.com/files/attachments/919020074026336/0
六、撤销修改
1.git diff HEAD -- 文件名:查看当前工作区和版本库中最新版本文件的区别
2.git checkout -- 文件名 :把文件在工作区的修改全部撤销
3.git checkout 文件名:git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令
4.git reset HEAD 文件名 : 已经add过了到达了暂存区,想撤销修改,可以做到把暂存区的修改撤销掉重新放回工作区
七、删除操作
1.git rm 文件名 : 从版本库中删除文件
2.git checkout -- 文件名 : 误删文件,可以使用该命令从版本库中恢复最新版本的文件,但是会丢失修改的未提交的内容
八、远程仓库
1.本地仓库关联远程仓库 : git remote add origin git@github.com:github的用户名/仓库名.git origin:远程库
例如:git remote add origin https://github.com/strawberrydandan/learngit.git
2.把本地库的所有内容推送到远程库上
git push -u origin master :把当前分支master推到远程仓库origin
加上了 -u 参数,Git不但会把本地的master分支内容推送的远程新的master分支
还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令
3.git push origin master:推送最新的修改
4.没有本地仓库直接克隆远程仓库:先创建远程仓库 再继续下面操作:git clone https://github.com/strawberrydandan/learngit.git
或者 git clone git@github.com:hithub用户名/仓库名.git
九、分支管理
1.创建分支并切换 : git checkout -b 分支名
2.查看所有分支(当前分支前会有*(星号)) : git branch
3.删除指定分支 :git branch -d 指定分支名
4.合并指定分支到当前分支 : git merge 分支名
5.创建分支:git branch 分支名
6.合并分支:git log -- graph :可以查看分支合并图
7.当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交
8.切换分支 : git checkout 分支名
9.切回主分支使用--no-ff参数,合并分支 :git merge --no-ff -m "提交的说明" 要合并的分支名
十、Bug分支
1.将当前工作场景储藏:git stash
2.创建bug修复分支:git checkout -b issue-101 issue-101 是bug分支名
3.查看储藏的工作场景:git stash list
4.恢复工作场景方法1:git stash apply 再用 git stash list 查看可以看到储藏的工作场景,删除储藏的工作场景需要使用git stash drop即可
5.恢复工作场景方法2:git stash pop 再用 git stash list 查看没有储藏的工作场景
6.有多个储藏的工作场景时进行恢复需要的工作场景:先用git stash list查看,然后恢复指定的stash ,git stash apply stash@{编号}
十一、强制删除
1.git branch -D 分支名 : 创建新的分支想要删除,但是没有合并到主分支,强制删除
十二、多人合作开发
1.查看远程仓库信息 : git remote
2.查看远程仓库详细信息:git remote -v
3.推送分支 : git push origin 要推送的分支名
如果推送失败,先拉取远程仓库的新提交,解决冲突后再提交
4.拉取远程仓库的新提交: git pull
5.在本地创建和远程仓库对应的分支:git checkout -b 本地分支名 origin/分支名
本地分支名和远程的分支名最好一致
6.如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建
用命令git branch --set-upstream-to 本地分支名 origin/分支名
git branch --set-upstream-to 本地分支名 origin/分支名