Git
文章目录
开始
使用步骤
1.下载安装git,打开git bash看是否安装成功。
2.配置名称和邮箱
3.创建版本库(即能被git管理的仓库),
4.git init Initialized empty Git repository in /Users/Dm20/learngit/.git/
,将仓库初始化
5.在该路径下写一个文件,通过git add readme.txt
,添加到仓库。
6.git commit -m "wrote a readme file"
,把文件提交到仓库。
7.修改文件,然后git status
查看文件状态,git diff
查看修改的内容。
8.git log
查看文件修改日志
9.通过顺序回退文件版本git reset --hard HEAD~n
回退n个版本。
通过版本号回退到numbers,git reset --hard HEAD numbers
10.没有git add
,用git checkout --fiel
已经git add
,用git reset HEAD <file>
从暂存区删除,再按照上述步骤1操作
已经git commit
,用git reset --hard HEAD~n
回退版本。
配置GIt
配置Git 的全局信息
git config --global user.name <user name>
git config --global user.email <user email>
初始化Git
在目录下创建一个
.git
目录
git init
添加
将 Workspace 中的文件 add 到 Index area
git add <filename>
将 Index area 中的文件 Commit 到 Repository
git commit -m <commit message>
查看
查看Git状态
git status
对比文件差异
git diff <file name>
git diff HEAD -- readme.txt 命令可以查看工作区和版本库里面最新版本的区别
查看日志
# 部分日志
git log
#所有日志(一行表示一条日志,比较直观)
git reflog
撤销
撤销文件更改
# 未添加到暂存区
git restore <filename>
# 未提交到仓库
git restore --staged <file name>
回退版本
# 已提交到仓库(通过 git reflog 去查看位置)
git reset --hard HEAD^
git reset --hard HEAD~1
git reset --hard <hashcode>
远程仓库
开始
创建SSH Key
在 C:\Users\Dm20
中查看是否有 .ssh
目录,如果没有则需要创建。
ssh -keygen -t rsa -C <email>
添加SSH Key
将id_rsa.pub
内容复制到Github -> setting -> SSH Keys
从远程仓库Clone
git clone <remote repository address>
关联远程仓库
# 为远程仓库添加别名为origin
git remote add origin <remote repository address>
推送和克隆
将本地仓库 Push 到远程仓库
# 初次使用,加上-u参数,origin为远程仓库的别名,推送到远程仓库的master分支
git push -u origin master
# 第二次使用
git push origin master
# 推送其他分支
git push origin <branch name>
查看
查看远程仓库的信息
# 查看简略信息
git remote
# 查看详细信息
git remote -v
分支
查看分支
git branch
创建分支
# 只创建分支
git branch <branch name>
# 创建并切换分支
git checkout -b <branch name>
git switch -c dev
# 在本地创建dev分支并与远程分支链接
git checkout -b dev origin/dev
# 已经创建了dev的情况下再与远程分支链接
git branch --set-upstream-to=origin/dev dev
切换分支
git checkout <branch name>
git switch dev
合并分支到当前分支(改变的是自己,合并后可删除另一个分支)
git merge <branch name>
删除分支
git branch -d <branch name>
解决冲突
冲突1:本地文件
修改冲突的文件再 add
和commit
冲突2:远程仓库文件冲突
git checkout -b dev origin/dev
创建分支dev开始工作- 完成后
add
和commit
git push origin dev
失败后git pull
将远程的比我早的origin/dev
提交抓取下来git branch --set-upstream dev origin/dev
将本地dev
和远程origin/dev
进行链接git pull
, 此时会出现冲突,手动解决git push origin dev
将本地dev推送到远程
冲突3:
git fetch
git merge
git commit
和git push
暂存分支
当出现Bug急需修复,且当前分支也未完成,此时需要暂存当前分支
git stash
再创建新分支修复Bug,修复完成后恢复之前的分支
# 恢复之前的分支
git stash apply
# 删除之前的分支
git stash drop
#恢复并删除
git stash pop
标签
git tag <name>
在当前分支上打上一个标签
git tag
查看所有标签
git tag v0.9 f52c633
在历史提交中找到commit ID,然后打标签
git show <tagname>
查看标签信息
还可以创建带有说明的标签,用-a
指定标签名,-m
指定说明文字:git tag -a v0.1 -m "version 0.1 released" 1094adb
注意
结构图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PknsQaGj-1632205904955)(https://gitee.com/have-a-lucid-brain/images224/raw/master/ImageBed/IMG_1092(20200409-200033)].jpg)
三种状态
- 已提交(committed)
- 已修改(modified)
- 已暂存(staged)
主分支
- 本地仓库主分支默认为
master
- 远程仓库主分支默认为
origin
提交的过程
- 工作区是干净的
- 从工作区提交到暂存区
- 从暂存区提交到分支