git 笔记
git 笔记
- git软件大全
- Git GUI 客户端
- Git IDE 插件
- Git 浏览器插件
- 在线 Git 代码托管平台
- 搭建 Git 服务
- Git 教程
- Git 常用命令
目录
安装 git
配置 git
账号密码管理仓库
- Windows:打开
控制面板
→搜索凭据
→点击管理 Windows 凭据
→找到你的gitee凭据操作 - Mac:打开
钥匙串访问
配置ssh免密管理仓库
1 | # 生成 ssh 密钥 |
配置文件
1 | less ~/.gitconfig # 查看全局配置 |
配置ssh
1 | Host github.com |
常用操作
初始化仓库
1 | git init |
已有仓库:
1 | git remote add origin https://github.com/yourname/yourrepo.git |
配置提交忽略文件或文件夹(.gitignore)
在项目根目录新建
.gitignore
文件
1 | .history |
查看提交记录
- 所有提交:
git log
- 某人提交:
git log --author='用户名'
配置用户名和邮箱
1 | git config --global user.name 'yourname' |
想要修改项目中的文件时如何进行操作
- 查看状态:
git status
- 添加到暂存区:
git add 文件名
- 提交:
git commit -m "描述"
- 查看提交记录:
git log
文件删除/重命名/移动
- 删除:
git rm 文件名
- 重命名:
git mv 旧名 新名
- 移动:
git mv 文件 路径/新文件名
查看文件变化
- 查看差异:
git diff
- 查看历史:
git log -p 文件名
操作失误还原
- 单文件还原:
git checkout -- 文件名
- 撤销暂存区:
git reset HEAD 文件名
版本回退
- 回退到上一个版本:
git reset --hard HEAD^
- 回退到指定版本:
git reset --hard 版本ID
文件回退到指定版本
1 | git log |
推送到远程仓库
- 推送:
git push origin main
- 设置默认远程:
git push --set-upstream origin main
标签管理
1 | git tag v1.0 |
分支管理
- 创建分支:
git branch dev
- 查看分支:
git branch
- 切换分支:
git checkout dev
- 删除分支:
git branch -d 分支名
- 强制删除:
git branch -D 分支名
- 创建并切换:
git checkout -b 分支名
分支合并与冲突
- 合并分支:
git checkout master
→git merge dev
- 冲突解决:手动处理冲突后
git add .
→git commit -m "解决冲突"
多人协作
- 查看日志:
git log --oneline --graph
- 删除远程分支:
git push origin --delete 分支名
- 关联远程分支:
git checkout -b dev remotes/origin/dev
远程库与本地库不一致解决
- 推送失败时:
git pull --rebase origin main
,再git push origin main
git commit -m '移动文件到文件夹 并重命名 并提交'
文件有变化时如何查看文件前后变化
文件重命名+移动+各种操作后,命令行查看文件的前后变化
- 方法一
- 格式:
git log --pretty=online
文件的所在位置 名称 或 路径/名称 git log --pretty=oneline home/demo.html
- 出来了
ID head -> 分支(master)
描述:移动文件并且重命名 - 复制 ID
- 格式:
git show ID
git show b435ec75eabc959559a5sd9adasdsadasdas
- 格式:
- 方法二
- 格式:
git log -p 文件的所在位置 名称 或 路径/名称
git log -p home/demo.html
- 格式:
操作失误的情况下如何实现一键还原
文件还没有提交到暂存区之前,让代码回到上一次提交的状态
- 针对单个文件的还原
- 自己找不同,手动还原
git diff
- 红色删掉的,绿色添加的
命令行操作
git status
modified:home/demo.html
说明有改动的文件,那就还原他git checkout -- home/home.html
不再追踪时如何实现撤销追踪操作
文件已经提交到暂存区,git 会对文件进行追踪,所以需要撤销追踪,然后还原
git reset HEAD home/demo.html
git checkout -- home/home.html
想要回到上一版本或者指定版本时如何进行操作
一个项目提交到暂存区 5 次,项目快速退回到第 3 次 提交的状态
- 方法一
- ^ 一个(^)代表回退一个版本,^ 两个(^^)代表回退两个版本,就到第 3 次 提交
git reset --hard HEAD^^
- 方法二
- 获取需要回退到的版本 ID (可以取前 7 位,也可以全部复制)
git log
- 回退指定版本 ID(可以是 ID 前 7 位,也可以是完整 ID)
git reset --hard ID
想要将某一文件回到指定版本时如何进行操作
一个 项目 提交到暂存区 5 次,指定文件 快速退回到第 3 次 提交的状态
- 获取要回退的版本 ID (可以取前 7 位)
git log
git checkout e748986 -- demo.html
git checkout e748986 -- home/home.html
git add .
git commit -m 将指定文件回退到指定版本
想要修改内容之后推送至远程仓库时如何进行操作
- 推送到远程的
master
支上git push origin master
- 设置默认推送远程地址
git push --set-upstream origin main
(设置成功后下次只需要git push
即可)
想要给每个版本创建一个独特标签,做所有版本
- 创建 tag
git tag v1.0
- 给指定 commit 版本 创建 tag
git tag v0.5 9286adde
- 查看 tag
git tag
- 删除 tag
git tag -d v0.5
- 推送 tag 到远程仓库
git push origin v1.0
创建的 tag 默认 加到最新的一次 commit 上面
想要切换、删除分支时如何进行操作
分支操作:需要完成某些功能,从主线中剥离出来一些支线,由支线完成单独的功能,最后把支线合并到主线
- 创建分支
git branch dev
- 查看分支
git branch
- 切换分支
git checkout dev
- 删除分支(不能删除当前的分支)
git branch -d test
- 强制删除分支(分支处于 commit ,没有 push 到远程仓库的状态也是不能删除)
git branch -D test
- 创建分支并切换到分支
git checkout -b test
想要合并分支时如何进行操作
分支开发完成后,commit 到暂存区,合并到主线,
切换主线分支,然后把 dev 分支 合并到主线 master 分支
git checkout master
git branch
git merge dev
dev合并到master
dev 分支没有变化,master 是合并后的代码
当合并分支有冲突时如何正确的合并分支
两人都改了同一个文件后进行合并git merge dev
- 解决方法一
- 冲突,忽略 dev 分支代码,保留原分支(当前分支)内容
git merge --abort
- 解决方法二
- 手动处理冲突
- git add .
- git commit
- 可编辑界面,
按 i 可输入
加注释:这是解决冲突之后的正确代码,解决了 test.html 当中的冲突 - 退出编辑:
esc-->:wq-->enter
git commit -m 解决冲突之后的代码
不同人想要查看版本路线如何进行操作
- 查看日志
git log
- 查看精简日志
git log --oneline
- 查看版本路线,分支日志
git log --oneline --graph
不同人想要删除不想要的分支如何操作
- 拉取所有的远程仓库
git fetch
- 查看远程分支
git branch -av
- 删除远程仓库分支(1.改分支是不是不需要了 2.该分支有没有合并到主分支)
git push origin --delete dev
不同人修改了不同文件如何处理
张三给远程仓库 dev 提交了代码,修改了 a.html 文件,当前用户改了 b.html 需要提交到远程仓库
- 查看远程分支
git branch -av
- 出来了
remotes/origin/dev
- 把远程的仓库 dev 分支 代码合并到暂存区的 dev 分支,再把暂存区的 dev 分支提交到远程仓库
git merge origin/dev
按 i 编辑
加入注释,退出编辑:esc
—>:wq
–>enter
- 提交到远程 dev 仓库
git push
不同人修改相同的文件如何操作
- 添加用户,模拟 A 用户 可忽略
git config --add --global user.name 'cc'
git config --add --global user.email 'qq@qq.com'
- 查看本地分支与远程分支的关联
git branch -av
- 远端分支与本地分支做关联
git checkout -b dev remotes/origin/dev
- 对项目进行改动,然后提交
git add .
git commit -m 我需改的
git push
- B 用户修改文件提交
git branch -av
git fetch
git branch -av
git checkout -b dev remotes/origin/dev
- 对项目进行改动,然后提交
git add .
git commit -m 他需改的
git push
远程库与本地库不一致解决
- 提交
git push origin main
- 报错
error: failed to push some refs to 'https://github.com/cxvh/***'
- 解决方法
git pull --rebase origin main
- 该命令的意思是把远程库中的更新合并到(pull=fetch+merge)本地库中,–-rebase的作用是取消掉本地库中刚刚的commit,并把他们接到更新后的版本库之中。出现如下图执行pull执行成功后,可以成功执行git push origin master操作。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 BARAN的小站🔥🔥🔥!