Git基本使用
Git基本使用
晴天和猫Git基础入门
一、Git原理简要
4个区域
Workspace:工作区 Stage:暂存区 Repository:本地仓库 Remote:远程仓库
1.下载与安装:
https://git-scm.com/download/
2.使用入口
win:右键菜单—git bash
mac:终端窗口
3.基础配置
首次使用添加身份说明,使用以下两个命令:
1 | $ git config --global user.name "你的昵称" |
创建仓库
① 在项目文件夹下使用git bash输入
1 | $ git init |
② 使用他人项目创建仓库
1 | $ git clone 项目url |
二、状态与提交版本
文件四种状态
1.跟踪
跟踪文件
1 | $ git add <name> |
跟踪当前目录
1 | $ git add . |
2.取消跟踪
rm删除
1 | $ git rm <name> |
保留但不跟踪
1 | $ git rm-cache <name> |
3.文件状态修改
修改后缓存 / 取消缓存
将修改文件缓存
1 | $ git add <file-name> |
取消缓存
1 | $ git reset HEAD <name> |
提交缓存的修改
1 | $ git commit -m '本次提交描述' |
4.$ git commit 具体操作
① $ git commit 进入提交界面,
按" i "键进入输入模式后输入本次提交详情,
然后esc退出编辑模式, 按" : "进入命令栏, 输入"wq"保存并退出.
② $ git commit -m ’ 你对提交内容的描述 ’
③ $ git commit -a
连带未暂存文件一起提交
git commit -am ‘提交描述’
三、远程仓库
新建远程仓库
1.链接远程仓库到本地
本地添加远程仓库
1 | $ git remote add origin 远程仓库链接 |
2.重命名仓库
查看远程仓库
1 | $ git remote |
修改远程仓库名
1 | $ git remote rename <name> <new name> |
3.推送本地代码到远程仓库
推送
1 | $ git push 仓库名 分支名 |
4.验证
①使用token令牌验证
②简单方式:SSH鉴权
四、分支
1.分支的概念
每次提交时会生成一个提交对象,每个提交对象有独一无二的哈希值,分支就是一个包含该哈希值的文件
可以理解为分支就是某次提交的一个指针,可以在一个提交对象上新建多个分支
初始化本地仓库时就会新建一个master分支
每次进行一次提交时,分支也会跟着提交对象向前移动
在第二次提交对象上新建一个分支
之后的提交就会有不同的分支
2.经典git模型
3.分支操作
创建分支名
1 | $ git branch 分支名 |
查看分支名
1 | $ git branch --list |
切换分支
1 | $ git checkout 分支名 |
五、分支合并
1.无冲突合并
在 合并至 的分支使用
1 | $ git merge 要合并的分支 |
2.分支冲突 merge conflict
将 分支2 合并到 master分支 时, 与 分支1 冲突了. 原因是 分支1 和 分支2 修改了同一处内容.
查看哪里有冲突
1 | $ git status |
$ vi 到冲突文件中, 选择一个分支的内容保留下来, 保存退出
1 | $ git add 文件名 |
六、推拉与远程跟踪分支
1.推送
1 | $ git push 仓库名 分支名 |
或者
1 | $ git push -u 仓库名 分支名 |
第一次使用 -u 指定推送目标后, 此后可直接使用git push
2.拉取
$ git fetch
$ git checkout 远程分支
$ git checkout -b 本地分支名 远程分支
$ git checkout --track 远程分支
七、贮藏功能
1.git stash
代码写到一半有13事儿来了, 要切换到其他分支是不允许的, 可以把当前分支修改的东西储藏起来再切换.
2.git stash apply
切换回来后, 恢复之前存储的内容
3.多次存储
a.回看存储记录
$ git stash list
b.恢复指定记录
$ git stash apply stash@{记录号}
c.恢复并删除记录
①恢复并删除最近一次记录
$ git stash pop
②删除指定记录
$ git stash drop @stash{记录号}
八、重置与变基
1.reset(重置)
a. head
head: 当前的提交
head~: 上次的提交
head~2: 倒数第二次的提交
b. --soft
仅取消commit操作, 把修改文件暂存.
如果不加 --soft 则表示恢复到暂存前, 修改的内容是存在的.
c. --hard
取消暂存, 还取消修改内容, 彻底回到上次提交的状态.
不推荐使用, 可能丢失数据.
2.rebase(变基)
a.将B分支的修改移动到A分支
git checkout B
git rebase A
b.注意事项
注意他人在远程分支二次开发时, 审慎使用变基