Git是当下最流行的版本控制器,可以控制电脑上所有格式的文档,可回退之前版本 0.查看Linux版本
cat /etc/os-release1.查看git版本git --version2.卸载git Red Hat / CentOS 7-/ 老版 Fedorasudo yum remove git -yubuntu环境下sudo apt-get remove git -y3.安装git Red Hat / CentOS 7-/ 老版 Fedorasudo yum install git -yubuntu环境下sudo apt-get install git -y4.创建本地仓库git init5.查看隐藏目录la6.查看.git中有什么文件tree .git/7.配置本地仓库 (1)配置用户名git config user,name "---"或者生效于当前机器所有本地仓库git config --global user.name "---"(2)配置邮件地址git config user.email "---"或者生效于当前机器所有本地仓库git config --global user.email"---"(3)查看配置git config -l(4)重置配置 重置用户名git config --unset user.name或者重置当前机器全局本地仓库配置git config --global --unset user.name重置邮件git config --unset user.email或者重置当前机器全局本地仓库配置git config --global --unset user.email不可在.git(版本仓库)文件进行任何修改 与.git同一文件夹下, 被称为工作区 HEAD指针指向master add之后文件会先放到index缓存区 objects对象库储存修改后的文件的新的.git对象, 即工作区内容修改后, 会自动往对象库中写入新的.git对象
1.添加文件
git add 文件名(可以添加多个文件)或者git add .提交所有文件 2.提交文件git commit -m "提交的细节"3.打印提交记录git log4.查看master最新一次提交的commit-idcat .git/refs/heads/master5.通过commit-id来查看提交细节git cat-file -p 提交ID找到tree对应的ID后,再次git cat-file -p tree的ID,再次git cat-file -p 你想要查看的blob的ID6. 查看当前仓库的修改状态git status7.查看具体修改了哪些内容git diff 文件名

8.以简洁优美形式来展现自己的修改操作
git log --pretty=oneline
1.版本回退 (1)
git reset [--soft | --minxed | --hard] commit-ID–soft: 只回退版本区内容 –mixed: 回退版本区与暂存区的内容(git中的默认级别) –hard: 回退所有区域内容(慎用)

(2)通过git log --pretty=oneline 指令来查看你的commit-ID, 然后进行回退

(3)如果不小心关闭了云服务器, 可以通过指令
git reflog查看历史commit-ID

(4)每次回退只是修改master指针的指向

1.撤销修改 (1)工作区撤销修改
git checkout -- 文件名回到最近一次add/commit状态(用于工作区的撤销修改操作)

(2) 暂存区撤销修改
当你add添加了修改文件到暂存区的时候, 还没有提交到版本区, 那么使用版本回退命令, 把工作区与暂存区与版本区的内容保持一致 git reset --hard HEAD(如果回到上一个版本HEAD^ 以此类推加^) 文件名
(3) 版本区回退(前提是没有进行push操作推送到远程仓库)
git reset --hard HEAD^* (回到上一个版本)
2.删除文件
git rm 文件名 删除工作区文件并且add到暂存区, 我们只需commit到版本区即可

1.查看分支
git branch2.创建分支git branch 分支名称3.切换分支git checkout 分支名称既创建又选择分支快捷方式:git checkout -b dev

4.在分支上修改后add再commit 5.切换成主分支master
git checkout master6.合并分支git merge 分支名称

7.删除分支
git branch -d 分支名称要注意, 必须在其他分支上才能删除当前分支, 且merge合并后才能删除 8.合并冲突 在分支dev修改提交后, 又在master进行修改提交, 这时如果合并Git不能分辨我们要选择哪个修改后的结果, 于是就会产生合并冲突, 这时就需要我们进行手动处理冲突

9.查看分支合并情况(图示化)
git log --graph --abbrev-commit

10.合并模式
(1)First-forword 模式: 直接使用命令 git merge 分支名称, ff

(2)no-ff模式, 合并时使用命令
git merge --no-ff -m "自定义名称" 分支名称, 而我们之前发生合并冲突时使用的就是这种模式

11.bug分支 已知master主分支上运行的程序必须是最稳定最优化的版本, 但实际开发中我们可能会遇到master主分支上也会出现bug的情况, 这时我们不应该直接在master直接修复bug, 因为有可能越修复程序越崩溃, 因此我们需要在当前主分支上建一个bug分支, 专门用来修复bug, 修复好后可以合并到主分支, 而这时可能会有其他同事2在bug分支并入master分支之前另建了一个分支用来增加新功能, 当同事2写完后并入master分支时就会产生合并冲突, 解决合并冲突可以在master并入然后手动解决冲突, 但最好的方式就是master并入到dev上, 在dev修改没有问题后再次并入到master中

12.强制删除
在之前我们合并分支时候, 可以在另一个分支删除当前已经合并的分支, 但是当我们在分支开发过程中, 写完commit之后还没有merge时, 突然不想要这个分支的话, 用git branch -d 分支名称 时候删除失败的

我们需要使用命令git branch -D 分支名称 强制删除
1.gitee远程仓库中的Issues, 作用是当遇见bug时, 可以通过该按钮来指定人员处理这个bug, 可以设置时间, 负责人, 优先级等等…



2.gitee的Pull Request这个功能是在开发工作中, 当我们新写一个功能时, 不可以直接并入主分支master, 需要提交申请, 负责人同意后才可以并入master
3. 克隆远程仓库
找到HTTPS, 点击复制, 然后在服务器输入命令 git clone HTTPS地址 进行克隆仓库(克隆远程仓库不能在本地仓库的任意一个文件夹下)

4.查看远程仓库默认名字
git remote 后者查看更详细信息 git remote -v
可以看到我们当前有两个权限 fetch拉取权限| push推送权限

5.使用SSH克隆远程仓库
在xshell查看 .ssh/是否有 id_rsa 和 id_rsa.pub这两个文件
没有那么在主页面输入命令创建服务器公钥私钥ssh-keygen -t rsa -C "gitee邮箱"
然后到gitee设置里面添加公钥== id_rsa.pub 中的密钥

在用户主目录克隆仓库 git clone SSH地址
6.本地仓库修改推送到远程仓库
git push origin 本地分支名称:远程分支名称 当本地分支与要推送的远程分支名字一致时, 可以只写一个名字, 但要注意推送之前要先commit提交
7.拉取远程仓库
当远程仓库的修改内容比本地仓库新时, 第一次拉取使用git fetch origin master 与
git reset --hard origin/master, 之后拉取使用git pull origin 远程分支:本地分支
1.忽略文件 修改 .gitignore文件
vim .ignore, *.so表示所有后缀为.so文件都被忽略, !b.so表示, 忽略单个b.so文件

2.有一些文件被忽略时, 但你需要提交该文件, 也可以使用强制添加git add -f 文件名
3.当我们的.gitignore查看文件过多时, 我们不能分清什么时候忽略的该文件, 可以使用命令
git check-ignore -v 文件名

4.配置命令别名
一些长命令我们写起来很麻烦, 所以我们可以设置别名, 例如打印漂亮缩写的commit提交日志是命令git log --pretty=oneline --abbrev-commit我们可以设置精简的别名 git config --global alias.lpa 'log --pretty=oneline --abbrev-commit' 表示设置全局别名, alias.别名 ‘要起别名的命令’
1.创建标签, 默认是给最近一次提交打上标签
git tag 自定义标签名

2.给历史提交打上标签, 并加上详细表述 先查看历史标签
git log --pretty=oneline --abbrev-commitgit tag -a v0.9 -m "自定义描述" 历史commit-ID

3.查看标签
gti tag
4.查看标签详细信息
git show 标签名称

5.删除标签
git tag -d 标签名称
6.推送标签
git push origin 标签名 后者一次推送所有标签 git push origin --tags
7.删除标签
在本地仓库删除后, 推送到远程仓库, git push origin :标签

1.查看远程仓库分支
git branch -r2.查看所有分支git branch -a3.本地创建分支并与远程仓库分支建立联系git checkout -b 本地创建的分支origin/远程分支

4.查看本地与远程分支连接情况
git branch -vv

5.与远程仓库建立连接
git branch --set-upstream-to=origin/远程分支 本地分支
6.本地修改后提交并推送, powershell修改后再提交推送时, 会产生冲突, 这时就需要先拉取文件后解决冲突再次提交推送
7.推送流程
先在本地master和dev分支pull一下, 获取到当前远程仓库最新代码, 然后在本地master合并到dev, 如果有冲突解决合并冲突, 解决完冲突后然后dev合并到master上, 最后master推送给远程仓库的origin/master中

1.在master上先pull拉取最新的数据后, 再在本地master创建分支, 创建文件进行开发后, 采用命令
git push origin 本地分支名称, 远程仓库会自动创建分支 2.开发者1 与 开发者2 开发新功能时, 分别在不同分支上进行开发, 提交的时候不会产生冲突 3.如果开发者2生病, 开发者1代替开发者2继续开发: 先拉取分支git pull

4.开发者1开发一半后提交
5.开发者2病好了, 然后继续开发, 需要先绑定远程仓库分支2, 然后拉取最新信息, 最后开发完成后提交推送该分支
6.合并仓库先拉取master分支内容, 然后切换到feature-1分支, 将master合并到该分支上, 有冲突解决冲突后, push该feature-1分支, 最后在远程仓库通过PR进行合并
7.删除已经在远程仓库删除的分支打印的日志
git remote prune origin
1.master分支只读确唯一的分支, 一般由release分支合并, 在master上的推送都需要打上标签tag做记录, 作为主分支不允许直接在master分支上修改代码, 不可被删除 2.develop分支, 为开发分支, 基于master主分支创建的唯一且只读分支, 始终保持最新和bug修复状态, 由feature分支合并 3.feature分支 作为新功能开发分支, 以develop分支为基准创建的, 命名格式为feature/user_createtime_feature, 开发完成后需要合并到develop分支, 上线发布后需要删除 4.release分支, 预发布分支, 本次上线的所有feature合并到develop创建, 可部署到预发布集群, 命名格式:release/version_publishtime, 测试出bug的话, 回归验证develop分支是都也有该问题, 上线后可删除 5.hotfix分支, 补丁分支后bug修复分支, 基于master分支创建, 修复完成后合并到master和develop分支上, 并推送远程, 一旦上线后就删除