0%

git命令操作笔记

[TOC]

git官网教程:https://git-scm.com/book/zh/v2

codesheep:https://mp.weixin.qq.com/s/DQVVYOWdOPuRsy3m0fg6Xg

图解Git:https://marklodato.github.io/visual-git-guide/index-zh-cn.html

Pro Git:https://bingohuang.gitbooks.io/progit2/content/

image

创建一个目录用于存放仓库,或在有内容的目录下操作。

然后切换到此目录下初始化:git --bare init

1
2
3
4
5
6
7
8
9
10
11
12
git status 查看仓库状态
branches 分支目录
config 定义项目特有的配置选项
description 仅供git web使用
HEAD 当前分支
hooks 包含git钩子文件
info 包含一个全局排除文件
objects 存放所有数据内容,有info、pack两个子文件夹
refs 存放只想数据(分支)的提交对象的指针
index 保存暂存区信息,在执行git 初始化的时候这个文件还不存在,git add 后生成
工作目录 暂存区 本地仓库 远程仓库
git add git commit git push
1
2
3
4
5
6
7
8
9
10
11
12
git add FILE 添加file到暂存区
git add . 添加目录中所有改动过的文件到暂存区
git rm --cached FILE 将暂存区的FILE 撤回到工作区
git rm -f FILE 同时删除暂存区、工作区的FILE(即直接删除暂存区的文件)
git commit -m "add newfile a" 添加到本地仓库(相当于做了一次快照,可根据引号中内容恢复)
【真正意义上的通过版本控制系统管理文件:工作目录必须有代码文件,通过git add file添加到暂存区,通过git commit -m "输入的备注"添加到本地仓库】
修改文件名两种方式:
1.mv a a.txt 即先删除a 然后生成了a.txt,所以改名不用这个 (删除本地文件)
git rm --cached a
git add a.txt 然后git status 即可看到这两条命令即是rename (删除暂存区文件)
git commit -m "modified a a.txt" a改名a.txt并提交
2.git mv old new 直接更改文件名,改完直接git commit提交即可
1
2
3
4
5
6
7
git diff 比对工作目录与缓存区有什么不同
git diff --cached 比对暂存区与本地仓库有什么不同

ls检查下当前目录下是否有仓库信息,
git remote add origin git@10.0.0.227:web/control.git 创建远程仓库origin
git remote 查看当前远程仓库的名称
git remote remove origin 删除远程仓库origin

日志命令

1
2
3
4
5
6
git log 查看历史提交信息
git log --online 查看历史提交信息的哈希值
git log --online --decorate 历史提交信息并查看当前指针位置
git log -p 展示具体变化内容
git log -1 展示一条提交信息的内容
git log -1 -p 展示详细具体的最后一条变更的信息内容

初始化命令

1
2
3
git reset --hard xx 恢复到从前的位置
git reflog 查看所有历史提交信息,包括回复到指定位置之前的
git reset --hard xxx 前后都能回滚 来回滚

分支管理

1
2
3
4
5
6
7
8
git branch 查看分支
git branch fenzhi 创建分支fenzhi
git checkout fenzhi 切换分支fenzhi
git checkout -b testing 创建并切换到分支testing
删除分支要先切换到master然后删除创建的testing ,删除也会给自动创建一个快照,可恢复
git branch -d testing 删除分支testing
git merge testing 合并分支
冲突时,直接编辑冲突的文件,例如:vi aaa 然后去掉大于号、小于号、等于号,然后选择保留的代码,可都保留。

版本管理

1
2
3
4
5
git tag -a v1.0 -m "hehe" 当前状态打标签为V1.0
git tag -a V1.0 haxizhi -m "hehe" 把某个哈希状态的状态打标签
git show v1.0 查看某个标签的信息
git reset --hard v2.0 回滚数据到V2.0
git tag -d v2.0 删除V2.0标签的数据