学习地:https://www.liaoxuefeng.com/wiki/896043488029600
创建版本库
版本库又名仓库,英文名repository,可理解成一个目录
1.选定位置新建目录,mkdir 文件夹名称
2.将该目录变成git可管理的目录,git init
会在指定的目录中生成.git文件,假如目录选错了可以直接再资源管理中删除.git文件就可以重新设置正确目录
3.把文件添加到版本库,git add 文件路径
执行成功没有任何提示
4.把文件提交到仓库,git commit -m 相关的更改记录信息
修改更新提交
1.查看仓库当前状态,git status
2.查看不同,修改详情,git diff
3.提交更新(和提交新文件步骤一样),git add -->> git commit -m “messages”
版本回退
带有HEAD表示当前版本,HEAD表示上一个版本,HEAD^表示上两个版本,HEAD~50表示上50个版本
1.回退版本,git reset --hard HEAD^:回退到上一个版本
2.回退到原来的新版本,git reset --hard (commit id),id不用写完,可以只写前几位
3.假如不记得id,git reflog,记录了每一次的操作命令
工作区、暂存区
工作区:当前修改的工作状态
暂存区:在执行git add之后,执行git commit -m之前,修改的信息存储的位置
1.撤销修改,git checkout – 文件名称,将目前的工作区中的修改全部恢复(一、修改了还没有将修改添加到暂存区,恢复到修改之前,即最新的版本;二、将修改添加到暂存区但是还未提交,恢复到添加到暂存区之后的版本)
2.撤销暂存区的修改,git reset HEAD 文件名称,将暂存区的修改放到了工作区
删除文件
1.先在工作区rm 文件完整路径,或者直接在文件管理中删除掉文件,此时本地的文件被删除掉
2.删除版本库中的文件,git rm 文件完整路径,然后执行git commit -m “信息”
远程仓库
添加远程仓库,提交内容
1.创建SSH KEY,若用户主目录下没有.ssh文件夹,或文件夹中没有id_rsa和id_rsa.pub两 个文件,则需要创建ssh key,若不需要可跳过第二步
2.执行-$ ssh-keygen -t rsa -c “youremail@examole.com”生成ssh key
3.在服务器上设置ssh公钥
4.添加git的远程仓库,$ git remote add origin git@github.com:LiAng-YL/GitLearn.git
5.将本地库内容推送到远程仓库:$ git push origin master
从远程库克隆代码
执行- $ git clone git@github.com:LiAng-YL/gitstkills.git
分支管理
1.创建分支,$ git branch ,创建并切换分支,$ git checkout -b ($ git switch -c )
2.切换分支,$ git checkout ($ git switch )
3.查看当前的分支,$ git btanch,会列出当前库中的所有分支,并在使用分支前标记”*”号
4.合并分支,$ git merge ,合并指定分支到当前分支
5.删除分支,$ git branch -d ,
解决冲突
在合并分支的时候可能出现错误,提交的时候要先手动解决冲突之后才能再提交
分支管理策略
通常情况下,合并分支采用的是fast forward模式,该模式下删除分支后会丢失分支信息,为了 保证分支信息存在,需要禁用fast forward模式,$ git merge --no-off -m “meassge”
Bug 分支
在工作中,接到紧急bug修复工作,但是当前的工作任务未完成,不能提交当前工作结果,这个时候可以选择,$ git stash,将现在的工作区隐藏保存起来,等bug修复之后继续恢复当前工作,有两种恢复方式,一:$ git stash apply --> $ git stash drop、二:$ git stash pop、
在master分支中将bug修复好了,但是现在开发的dev分支的bug也需要修复,可以用 $ git cherry-pick,复制指定的提交到当前分支
多人协作
查看远程库的信息,$ git remote/$ git remote -v,远程仓库的名称默认是origin
抓取分支:当从远程库克隆代码时候,只会克隆下主分支(master),那么需要建立dev分支进行开发,$ git checkout -b dev origin/dev
推送分支:$ git push origin dev,
标签管理
创建标签,$ git tag ,
查看当前的所有标签,$ git tag,标签的展示顺序不是按照时间顺序,而是按字母排序的
创建带说明的标签,$ git tag -a -m “message”
操作标签
删除标签:$ git tag -d (在本地仓库)
删除远程库的标签:$ git push origin :refs/tags/
推送到远程库:$ git push origin (批量推送到远程库:$ git push origin --tags),
Git自定义配置
特殊文件忽略
在工作区创建一个特殊的.gitignore文件,然后将需要忽略的文件名称保存,提交到远程库即可。忽略原则:1、忽略操作系统自动生成的文件,比如缩略图。2、忽略编译生成的中间文件、可执行文件。3、忽略自己带敏感信息的配置文件。
如果想强制添加文件到远程库,$ git add -f ,使用-f强制添加
配置别名
$ git config --global alias. 简写 全名,–global参数是全局参数
搭建Git服务器:https://www.liaoxuefeng.com/wiki/896043488029600/899998870925664