初级的就不说了,下面记录一些常用且稍微高级点的操作
@[TOC]
git的管理流程
工作区 ——> git add ——> Index[索引][暂存区] ——> git commit ——> HEAD[快照]
当执行
git add
后其实就是将更改的文件放入到暂存区中,当执行git commit
时就是将暂存区的内容提交到当前分支
- HEAD快照是保存你最后一次commit的内容
- git push 是将快照区的内容push 上去
git常用操作
1 | # 图形化显示log日志 |
1. 关联
你可以同时关联其他的仓库(也包括gitee和gitlab)
1 | git remote add origin-2 仓库地址 |
这样你push的时候
1 | git push origin-2 master |
2. 分支
2.1 只创建一个分支
1 | git branch fix-1 |
2.2 创建分支并切换此分支
1 | git checkout -b feat-1 |
2.3 切换分支
1 | git checkout master |
2.4 查看所有分支
1 | git branch -v |
2.5 删除分支
1 | git branch -d feat-1 |
2.6 删除除master以外的所有分支
1 | git branch | grep -v "master" | xargs git branch -D |
3. 临时暂存区
3.1 将更改放到临时暂存区
1 | git stash |
3.2 将更改从临时暂存区取出
1 | git stash pop |
3.3 查看临时暂存区内容
1 | git stash list |
3.4 恢复指定临时暂存区
1 | git stash apply stash@{id} |
4. 合并冲突
1.更新代码 git fetch
2.合并分支 git rebase origin/develop
//将develop分支与此分支合并
3.会进入合并分支,当有CONFLICT:Merge file.txt, 手动去修改此文件
4.修改之后添加冲突文件 git add file.txt
5.继续合并 git rebase --continue
, 如果有错误继续 执行 3 4 步骤
6.当分支名变成你的分支名则表示合并完成
7.查看当前状态 git status
8.如果状态都为已暂存,则可以执行 git push origin 分支名
进行提交
push之前忘记git pull
出现
1 | ! [rejected] master -> master (fetch first) |
可以使用下面这个命令
1 | git pull --rebase origin master |
这个命令是先取消commit记录,并且把它们临时 保存为补丁(patch)(这些补丁放到”.git/rebase”目录中),之后同步远程库到本地,最后合并补丁到本地库之中。
然后再直接进行push就可以了
5. 回滚
5.1 撤销掉本地修改(还没被git add)
1 | # 撤销某具体文件 |
5.2 撤销上一次git add
的内容
1 | # 撤销某个文件 |
只撤销某个文件
1 | git reset HEAD 文件路径/文件名 |
5.3 撤销上一次git commit
先查看日志,记录commit id
1
git log
恢复到指定commit
1
2
3git reset commit_id
# 备用
git reset --hard commit_id
5.4 修改上一次commit
1 | git commit --amend |
5.5 撤销git commit 和 git add 以及 工作区更新的内容
1 | git reset --hard HEAD~ |
5.5 删除远程分支中某个文件
这个只是让此文件不受版本控制了,而本地是不会删除它的
1 | git rm -r –-cached 文件路径/文件名 |
5.6 回滚到指定版本
查看日志拿到commitid
1
git log
恢复到指定版本
1
git reset --hard commit_id
6.开源协作
6.1 fork别人代码
此时你的仓库就会有一个此项目的副本
6.2 克隆代码
1 | git clone *****.git |
6.3 添加别人远程仓库地址
为了可以随时更新代码,这里最好将别人仓库的地址也新增一下
1 | git remote add origin2 *****.git |
拉取别人最新代码
1 | git pull origin2 master |
6.4 提交
添加新的功能之后开始提交代码,代码是提交到你的仓库中
1 | git push origin master |
6.5 提交PR
去你GitHub中此项目然后会有一个New pull Request
点击它,然后向别人的项目提交PR