Git学习笔记(详细)

https://gitee.com/all-about-git git大全

概述

  • 官网:https://git-scm.com/
  • Git是一个免费的、开源的分布式版本控制系统
  • 代码托管中心(远程库):局域网GitLab、互联网GitHub、码云Gitee

安装Git

  • 官网下载,直接默认安装即可(尽量不要修改路径),鼠标右键出现Git Bash Here即安装成功。
  • 查看版本:git bash 里面执行git --version
  • git bash很卡,清理windows临时目录可以解决:C:\Users\Administrator\AppData\Local\Temp

常用命令

  • 查看所有命令git --help
  • 查看某个命令的帮助文档git add --help, 会出现网页的文档供查看
# 设置用户签名
$ git config --global user.name xxx
$ git config --global user.email xxx@example.com

# 检查配置
$ cat ~/.gitconfig

# 初始化本地库 将当前目录变成一个git仓库 会生成一个.git目录
$ git init

# 查看状态
$ git status

# 添加修改到暂存区(新文件、修改文件、删除文件都要add到stage)
$ git add hello.txt

# 删除暂存区里的文件
$ git rm --cached hello.txt

# 提交到本地库 -m说明 不写也会打开一个编辑器让写
$ git commit -m "my first commit" hello.txt		# 或者git commit hello.txt -m "comment"
$ git commit -m "my first commit"				# 提交所有暂存区的修改
$ git commit -am "hot fix first commit "		# 相当于add + commit 自动提交所有修改到暂存区, 并提交到本地库
# 查看版本日志
$ git reflog  # 引用日志, 记录所有版本的版本号, 包括回滚, 精简版
$ git log     # 查看详细日志(提交作者和提交日期), 只有当前版本和以前的版本信息
$ git log --pretty=oneline # 在一行内显示

# 版本穿梭, 移动的是head指针, master分支 -> head指针 -> 具体的版本
$ git reset --hard xxxxxxx	# 根据git reflog中的版本号进行穿梭版本
$ git reset --hard HEAD^	# ^^表示回退两个版本,HEAD~100表示回退100个版本

分支管理

$ git branch --help	# 查看所有branch命令
$ git branch		# 查看所有分支 *号表示当前分支
$ git branch -v		# 查看所有分支
$ git branch hot-fix	# 创建分支hot-fix
$ git check hot-fix		# 切换到分支hot-fix
$ git merge hot-fix		# 将hot-fix分支合并到当前分支 如果两个分支同时修改了同一个文件会有冲突 当前状态会在MERGING状态 此时需要编辑冲突的文件 其中会标出当前分支修改的部分 hot-fix分支修改的部分 修改后再提交
$ git branch -d hot-fix		# 删除分支, 需要保证该分支的内容已经合并到它的HEAD版本的分支

团队协作:

  • 团队内协作,一个远程库即可,需要创建者加入权限,开发者clone代码到本地库,修改后push,其他成员pull即可
  • 跨团队协作,fork别的远程库,修改后push,发起pull request请求远程库拉取自己修改后的代码,审核通过会merge到他们的远程库里
    公共库都可以clone,不需要验证,首先需要在github上创建远程仓库git-demo,可以在github上邀请协作
    ssh免密登录
# 由于本地git仓库和远程git仓库是通过SSH加密的,所以需要配置ssh,首先本地生成ssh的公钥和私钥,将公钥配置到github上,配置了ssh免密登录才可以使用git@github.com:YourName/xxx.git,否则只能使用https://github.com/YourName/xxx.git,且需要验证
$ ssh-keygen -t rsa -C bingmous@163.com		# 直接回车,在用户目录下会生成.ssh目录,里面有公钥和私钥

团队内协作

####已有本地仓库,在github上创建仓库后,将本地仓库同步到远程库
$ git remote add ori https://github.com/bingmous/git-demo.git	# 添加远程库 git remote add 别名 地址(远程仓库的地址)
$ git remote add origin https://gitee.com/bingmous/git-demo.git		# gitee 注意ori只是一个别名
$ git remote -v		# 查看远程库,会有fetch和push两个 -v表示详细
$ git push -u ori master	# 推送当前库到远程库(第一次推送)-u使用ori作为上游
$ git pull origin master	# 拉取最新代码

####直接从远程库clone
$ git clone https://gitee.com/bingmous/git-demo.git # clone做了三件事 拉取代码 初始化本地仓库 创建远程库别名(默认为origin)

跨团队协作

  • fork一下,会在自己的远程库里多一个fork的库
  • 修改代码后,提交,并创建pull request,发送pull request,在对方的仓库下就可以看到你的pull request
  • 对方看到pull request后可以看到修改的代码,并与自己的代码合并
上一篇:elasticsearch练习--高级查询-fuzzy-模糊查询


下一篇:日常软件安装遇到的问题