git基础
为什么学Git
- 备份:以防电脑突然蓝屏导致代码丢失
- 代码还原:在把代码改的乱七八糟之后还能复原
- 协同开发:为了同时修改代码
- 追溯代码编写人和编写时间
获取本地仓库
- 在任意位置创建一个空目录
- 进入目录后打开Git Bash
- 执行
git init - 如果创建成功就可以看见
.git目录
基础操作命令
创建:touch …
对于修改这一类(增删改),需要先从工作区通过git add把他提交到暂存区
在通过git commit提交到仓库才能完成修改,成为一次提交记录
git status查看修改的状态(工作区,暂存区)
git commit -m "注释内容"将暂存区里的内容存到仓库当前分支中,日志为注释内容
vi 文件名修改文件(编辑按i,退出的话按esc,在按:加上wq)
git log [option]查看提交记录
option:
- –all 显示所有分支
- –pretty=oneline 将提交信息显示为一行
- –abbrev-commit 使得输出的commitld更简短
- –graph 以图的形式显示
但是每次查看记录非常麻烦,因此可以用别名把这些内容缩短
alias 别名='操作' 如git-log
git reset --hard 日志版本回退
- 7c4b75b (HEAD -> master) file change
- 45bae1d first
日志就是前面的一串符号
git reflog查看之前已经删除的日志记录
之前的git add . ,如果有不想管理的文件,那这个操作就非常麻烦,因此可以创建一个.gitignore文件来忽略
touch .gitignore
添加*.a来忽略所有以.a结尾的文件
分支
从主线上分开来开发新的功能,且不会影响主线
HEAD指向谁,谁就是当前分支
git branch查看本地分支 (-vv 会展示更详细的内容)
git branch 分支名创建本地分支
git checkout 分支名切换分支
git checkout -b 分支名创建并切换分支
git merge 分支名合并分支(把分支名这个分支合并到当前分支)
git branch -d 分支名删除分支(不能删除当前分支,只能删除其他分支)
git branch -D 分支名强制删除分支:当要删除的分支没有合并到master时,用-d的话会提醒你没合并,这时候就用-D
冲突
两个分支修改的时候可能会产生冲突,例如修改了同一行代码,这时候就需要手动修改
github连接远程仓库
1 | git init |
git remote add <远端名称> <仓库路径> 添加远程仓库 (远端名称一般是orrgin)
git remote查看远程仓库
git push [远端名称[本地分支名][:远端分支名]推送到远程仓库
若两个分支名相同,可省略[:远端分支名]
git clone <仓库路径> [本地目录]克隆仓库
git fetch [远端名称] [分支名]抓取指令,把仓库里的更新抓取到本地,不会进行合并
git pull [远端名称] [分支名]拉取指令,就是fetch+merge(也会有冲突,按上文修改即可)


