Git 是目前世界上最先进的分布式版本控制系统(没有之一)
www.github.com、www.gitee.cn、https://gitlab.cn/
作者是 Linux 之父
当初开发 Git 仅仅是为了辅助 Linux 内核的开发(管理源代码)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5RsSIIZZ-1665627090616)(./git03.png)]
工作区(Working Directory)
暂存区 (Stage)
本地库 版本区 本地仓库库(Repository)
源代码管理
1. 协同开发
2. 版本记录
3. 冲突解决
4. 代码备份与还原
5. 权限与分支管理
6. ...
最早git是在linux上开发的,很长一段时间在linux和unix上运行,后来逐步移植到window、macOS等主流平台上
下载地址:https://git-scm.com/downloads
window: Gitbash / PowerShell / cmder
macos: terminal / iterm2. macos
linux(Ubuntu) : sudo apt-get intall git
git config --global user.name ''
git config --global user.email ''
# 和你git上注册的邮箱和用户名要一致
git config -l 查看配置信息
git init # 创建空的git仓库
# 查看git仓库文件状态
git status
# 红色: 表示新建文件, 或者新修改了文件,目前位于工作区中
# 绿色: 表示文件在暂存区
# 例如:
git add .
git add xxx.html
# 点表示添加所有变动, xxx.py表示指定文件
git commit -m "备注"
# 例如:
git commit -am '注释信息'
# 例如:
git log 查看版本的详细信息
git reflog 查看版本的大致信息
git log --pretty=oneline
# log查看详细信息, reflog查看简要信息
git reset --hard HEAD
# 或者:
git reset --hard 版本号
# HEAD表示当前最新版本
# HEAD^表示当前最新版本的, 上一个版本
# HEAD^^表示当前最新版本的, 前两个版本, 依次类推
# HEAD~1 表示当前最新版本的, 上一个版本
# HEAD~2 表示当前最新版本的, 前两个版本, 依次类推
git reflog
撤销工作区: git checkout 文件名
撤销暂存区: git checkout HEAD 文件名 (暂存区-工作区)
仓库区代码不能撤销
git diff HEAD HEAD^ -- xxx.py
# HEAD表示当前版本, HEAD^表示上个版本, xxx.py对比的文件
格式1: rm 文件名
恢复1: git checkout 文件名(必须提交记录到暂存区才可以恢复)
格式2: git rm 文件名
恢复2: git reset --hard HEAD^
查看分支
git branch -v
创建分支
git branch 分支名称
切换分支
git checkout 分支名称
git checkout -b 分支名
合并分支
# 切换到主分支
git checkout master
# 合并
git merge 分支名
# 将分支推送到远程分支 本地分支跟踪远程指定分支
git push -u origin dev
1.git config --global user.name ''
git config --global user.email ''
// 和你git上注册的邮箱和用户名要一致
2.git remote add origin git@gitee.com:bq1183/0816_test2.git
git push -u origin "master"(新建创库)
3.cd existing_git_repo
git remote add origin git@gitee.com:bq1183/0816_test2.git
git push -u origin "master"(已有仓库)
# 设置本地标签
例如: git tag -a 标签名 -m '标签描述'
# 推送本地标签到远程
例如: git push origin 标签名
# 删除本地标签
例如: git tag -d 标签名
# 删除远程标签
例如: git push origin --delete tag 标签名
# clone项目到本地
例如: git clone 项目地址
# 推送项目到远程仓库
例如: git push origin (分支)
# 第一次推送会提示输入账号, 密码
# 配置是否输入登陆密码信息
git config --global credential.helper cache 十五分钟有效期
git config credential.helper 'cache --timeout==3600' 一个小时有效期
git config --global credential.helper store 长期有效
# 拉取远程最新代码到本地
例如: git pull
多人协作解决冲突
在github上添加多人协作,Collaborators==》添加账号
当push的时候发现冲突
一 git fetch: 同步过来远端文件
然后可已查看 并且可以手动合并
然后在进行提交 ,再push到远端=( git push origin main 同步到远程的仓库)
git diff main origin/main 查看
git merge origin/main 合并一下,之后再取舍,在进行一次提交
git fetch
git diff main origin/main
git merge origin/main -m ""
改完之后在push
二 git pull origin master 拉取过来之后直接合并
cd ~/.ssh
ls 或者 ll
看是否存在 id_rsa 和 id_rsa.pub文件,如果存在,说明已经有SSH Key
ssh-keygen -t rsa -C "[email protected]"
cat id_rsa.pub
//拷贝秘钥 ssh-rsa开头
新建一个SSH Key
取个名字,把之前拷贝的秘钥复制进去,添加就好啦。
验证: ssh -T [email protected]
之前已经是https的链接,现在想要用SSH提交怎么办?
直接修改项目目录下 .git文件夹下的config文件,将地址修改一下就好了
.gitignore配置忽略文件
.gitkeep 允许空目录提交git
下班push 上班pull