参考网站:https://www.liaoxuefeng.com/wiki/896043488029600
基础概念
1.自定义名字和邮箱号
git config --global user.name “your name”
git config --global user.email “your email”
2.创建默认仓库
mkdir filename 创建文件
cd filename 进入文件夹
Pwd 当前文件路径
git init 将当前目录作为初始化的仓库
3.文件基础操作
git add filename.exname 文件添加,可多次添加,一并提交
   git commit -m “description” 提交文件并填写描述
git status 查看文件当前状态(例如:被修改的文件)
   git diff HEAD -- filename.exname 查看某个文件详细被修改的地方
   git log 查看操作日志
   git log --pretty=oneline 查看简介的操作日志
   ls 查看文件列表
4.版本回退
git reset --hard HEAD^ 回退到上一个版本 “^”的个数代表要回退的版本数,前两个版本用^^代表,以此类推
git reset --hard conmmitid 回退到任意指定commitid版本
git reflog 查看所有的文件操作指令,前面的随机码即commitid
5.撤销修改
git checkout -- filename.exname 已修改(删除)文件但未add时,使用该命令会撤销修改(删除)的地方(文件)
   git reset HEAD filename.exname 已经add但未commit时,使用该命令会把暂存区回退到工作区,相当于只是本地修改(删除),未add
6.删除文件
rm filename.exname 仅在工作区删除
git rm filename.exname 不仅再工作区删除,同时还删除暂存区(完事之后记得 git commit),若要恢复,则需要用到前面的撤销修改指令
7.连接github

出现红框内英文即代表链接成功
8.添加到远程库
在github创建一个空的git仓库之后
  
    在本地仓库输入 git remote add origin git@github.com:(github仓库地址).git
   若报remote origin already exists的错误 说明本地已经关联了一个远程库,需要先删除再关联
   git remote -v 查看远程库信息
   git remote rm origin 删除远程库
   再重新关联
   若要关联多个远程库比如(github和码云)
   git remote add github git@github.com:(github仓库地址).git 先关联github
   git remote add gitee git@github.com:(github仓库地址).git 再关联码云
注意后面的origin需要改为对应的红标内容(代表着远程库名字)
接着 git push -u origin master 把本地库master所有内容推送到远程库上, 第一次提交需要加上参数(-u),后面可简化
出现此内容属于正常,再输入一次上面的push指令即可
出现以下内容时,说明已经推送到github仓库了,以后只需要push一次就够了

**如果从别的文件库上传到一个github仓库**
  需要先pull下来 git pull origin master 会自动合并
  如果是两个不相关的项目需要加上参数 改为 git pull origin master --allow-unrelated-histories
  之后会自动打开vim编辑器 先按 i 切换到插入模式,写完后 Esc→:→wq 回车即可保存退出编辑器
  然后再重新 git push -u origin master 即可推送到github
9.从远程库克隆
   在github新建一个仓库的时候勾选
   然后再本地找到一个合适的地方
   git clone git@github.com:(github仓库位置).git 将项目克隆到本地仓库
10创建与合并分支
   git branch 查看分支
   git branch name 创建分支
   git checkout name 或者 git switch name 切换分支
   git checkout -b name 或者 git switch -c name 创建并且切换到该分支
   git merge name 合并某分支到当前分支
   git branch -d name 删除分支
   git log --graph --prety=oneline --abbrev-commit 查看所有分支合并信息
11.隐藏当前工作区,提交之前工作修改
例如需要修改分支名字为issue-101的bug
11.1 git stash 隐藏工作区
   11.2 git checkout master 切换回需要修改的分支
   11.3 git checkout -b issue-101 在改分支下创建临时分支
   11.4 修改bug后提交文件 提交时的commitid后面会用到
   11.5 git checkout master 切换回master分支
   11.6 git merge --no-ff -m ”描述内容” issue-101 完成合并并且删除该分支
   11.7 git checkout dev 完成修改切换回之前的分支继续开发
   11.8 git stash list 查看之前隐藏的分支
   11.9 git stash pop 恢复到之前的工作区并且删除stash的该条信息
   11.10 因为dev是从master分支分过来的,所以在dev上同样存在该bug的问题
   11.11 git cherry-pick commitid 复制一个特定的提交到当前分支,同时也提交了
12.强制删除某个分支
   git branch -D branchName 强制删除某个分支
13.多人协作问题
   git remote 或者 git remote -v 查看所有分支信息
   git push origin master(改成你要推送的分支) 提交到远程库
13.1 git pull 合并
13.2 如果git pull 提示no tracking information 则说明本地和远程的分支链接关系没有建立
13.3 git branch --set-upstream-to= (分支名字) origin/(分支名字)
13.4 git pull 再更新一遍
13.5 pull成功,但可能会出现冲突,手动解决一下再commit提交,然后再push一遍即可
14标签管理(首先要切换到要创建标签的分支上)标签和commit是挂钩的,如果提交到其他分支则其他分支也是有该标签
   git tag v1.0 创建1.0的标签
   git tag 查看所有标签
   git log --graph --pretty=oneline --abbrev-commit 查看所有commitid
   git tag v1.0 commitid 给指定commitid打标签
   git show v标签 查看对应标签的详细提交信息
   git tag -d v标签 删除某个标签
   git push origin v标签 推送某个标签到远程库
   git push origin --tags 一次性推送本地所有未推送的标签到远程库
   git push origin :refs/tags v标签 删除远程库的标签(要先删除本地的标签)

最新文章

  1. python备忘--函数
  2. JavaScript 入门教程四 语言基础【2】
  3. C++ STL中的 iterator 和 const_iterator
  4. CSS定位类型
  5. MyBatis入门学习教程-MyBatis缓存
  6. 使用caffe自动测试模型top5的结果
  7. springJDBC一对多关系,以及Java递归,jsp递归的实现
  8. AttributeError: 'module' object has no attribute 'TornadoAsyncNotifier'
  9. 团队项目——NABC
  10. Javassist初体验
  11. 【POJ1067】取石子游戏 (威佐夫博弈)
  12. javaTemplates-学习笔记二
  13. arcgis画矢量图
  14. ubuntu制作离线包
  15. Centos 6.x 升级到 7.x
  16. 使用SpringBoot集成ActiveMQ
  17. php json 解析有stdClass Object 解决办法
  18. MT【116】三个点动起来
  19. mysql 基础整合大全
  20. 第2章—装配Bean—通过java代码装配bean

热门文章

  1. 一键部署MySQL8+keepalived双主热备高可用
  2. 使用.NET开发搭建OpenAI模型的中间服务端
  3. MAUI新生4.6-主题设置LightTheme&DarkTheme
  4. CH9126常见问题解决(持续更新)
  5. 我的RHCA认证之旅
  6. [LeetCode]杨辉三角 II
  7. Echarts点击多组数据多个柱子中的一个柱子,获取当前点击的是第几组数据,并获取点击的是当前组别第几根柱子,以及对应横坐标,
  8. Python3+Selenium3自动化测试-(准备)
  9. Docker安装与卸载(基本命令)
  10. python实战-基于正交实验(工具:allpairs)自动生成接口异常测试用例