目录:
Git
本地相关操作
分支
合并
团队协作
GitHub
Git版本控制:记录文件的内容变化
Git:分布式版本控制工具 VS 集中式版本控制工具
Git最新版镜像下载地址:
https://registry.npmmirror.com/binary.html?path=git-for-windows/v2.39.1.windows.1/

Git和代码托管中心:
代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为 远程库。
局域网:
GitLab
互联网
GitHub
Gitee
Git常用命令
//用管理员身份打开git Bashgit config --global user.name 用户名 //设置用户签名git config --global user.email 邮箱 //设置用户签名git init 初始化本地库git status 查看本地库状态git add 文件名 //添加到暂存区git commit -m "日志信息" 文件名 //提交到本地库git reflog //查看历史记录git reset --hard 版本号 //版本穿梭


通用Linux命令

存在与暂存区可以通过提示指令删除,但工作区并没有删除,仅删除了追踪。
git rm --cached hello.txt

将暂存区的文件提交到本地库
git commit -m "日志信息" 文件名

查看日志引用信息:(版本号仅看到七位)
git reflog

查看详细日志信息
git log 可以查看到相关用户以及邮箱

修改文件
vim hello.txt//内部//复制操作 ctrl +y ,粘贴操作 ctrl + p 保存 Ctrl +s//保存并退出 Esc + :wqcat hello.txt //可以直接在命令行查看文件内容

查看是否修改状态:已经被修改

重新追踪

提交到本地库

查看更新日志

版本穿梭:回到之前的版本:Git切换版本,底层其实就是移动Head指针
git reset --hard 版本号

git的分支操作
分支:在版本控制过程中,同时推送多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。分支的底层也是指针的应用。
同时并行推动多个功能开发,提高开发效率
如果一个分支失败,不会影响其它分支
分支操作
git branch 分支名 创建分支git branch -v //查看分支git checkout 分支名 切换分支git merge 分支名 //把指定的分支合并到当前分支上// 修改分支名git branch -m <原分支名> <新分支名>// 删除分支git branch -d <分支名>
查看分支:目前就一个

创建分支:hot-fix

切换分支

修改hot-fix分支下hollo.txt文件
vim hello.txt 进入修改cat hello.txt //查看修改的内容git add hello.txt //追中南git commit -m "hot-fix first cmmit"



合并分支:把hot-fix合并到master上,要站在master上

git merge hot-fix

冲突合并:
冲突产生的原因:合并分支时,两个分支在同一个文件的同一位置有两套完全不同的修改,Git无法替我们决定使用哪一个。必须人为决定新代码内容
vim hello.txtcat hello.txtgit add hello.txtgit commit -m "master test" hello.txt//切换分支再次操作git checkout hot-fixvim hello.txtcat hello.txtgit add hello.txtgit commit -m "hot-fix test" hello.txt//切换到master分支git checkout master


合并失败,合并冲突

vim hello.txt //进入hello.txt 手动合并// 将不需要的内容进行删除


注:此时commit 后不加文件名,手动解决文件冲突

合并分支修改也只能修改合并分支下的文件,hot-fix下并不会修改
Git团队协作
远程仓库操作
git remote -v //查看当前远程地址别名git remote rm 别名 //删除远程地址以及别名git remote add 别名 远程地址 //起别名git push 别名 分支 //推送本地分支上的内容到远程仓库git clone 远程地址 //将远程仓库的内克隆到本地git pull 远程库地址别名 远程分支名// 将远程仓库对于分支最新内容拉下来后与当地本地分支直接合并
创建远程库以及别名:
git remote -v //查看当前远程地址别名git remote git_test https://github.com/foryouos/git_test.git

本地库代码推送到远程
git push git_test master
如果出现如下保存,删除别名,重新加入,使用鼠标右键粘贴链接
$ git push git_test masterfatal: protocol 'https' is not supported
首次会让选择登陆
推送成功


在github修改部分内容,本地库与远程库内容不同
拉取,将远程库最新内容与本地库合并
git pull git_test master

克隆远程仓库到本地
//切换到新的地址git clone 地址cd 克隆到的文件夹

团队协作
git add hello.txtgit commit -m "modifty by YHS" hello.txtgit push git_test master //传到GitHub
查看自己登陆的GitHub账户

团队内协作:GitHub添加项目成员

跨团队协作Fork
创建GitHubSSH免密登陆
把原有文件夹下.ssh删除

git进入此文件夹输入以下命令,邮箱换成自己的邮箱,生成ssh
ssh-keygen -t rsa -cC foryouos@qq.com
.pub //公钥
公钥复制到GitHub进行添加

修改GitHub内容同步到本地

Git-help
$ git help使用:git [--version] [--help] [-C <path>] [-c <name>=<value>][--exec-path[=<path>]] [--html-path] [--man-path] [--info-path][-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare][--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]<command> [<args>]这些是在各种情况下使用的通用Git命令:start a working area (参见命令: git help tutorial)clone 将存储库克隆到新目录中init 创建一个空的Git存储库或重新初始化一个现有的存储库work on the current change (参见命令: git help everyday)add 将文件内容添加到索引中mv 移动或重命名文件、目录或符号链接reset 将当前磁头重置为指定状态rm 从工作树和索引中删除文件examine the history and state (参见命令: git help revisions)bisect 使用二分查找查找引入错误的提交grep 打印与模式匹配的行log 显示提交日志show 显示各种类型的对象status 显示工作树状态grow, mark and tweak your common historybranch 列出、创建或删除分支checkout 切换分支或还原工作树文件commit 记录对存储库的更改diff 显示提交、提交和工作树等之间的更改merge 将两个或多个开发历史连接在一起rebase 在另一个基本提示之上重新应用提交tag 创建、列表、删除或验证用GPG签名的标记对象collaborate (参见命令: git help workflows)fetch 从另一个存储库下载对象和引用pull 从另一个存储库或本地分支获取并与之集成push 更新远程引用和相关对象'git help -a' 和 'git help -g' 列出可用的子命令和一些概念指导。命令'git help <command>' 或 'git help <concept>' 查看特定子命令或概念.
参考资料:
尚硅谷Git
《GitHub入门与实践》




