注意所有删除操作请先把文件备份.
初次使用 初始化仓库
提交 清空重置缓存区 修改提交的注释
查看修改 查看提交 查看提交和回滚
回滚
删除
远程库的绑定 远程库代码提交 远程代码库的删除 远程代码库文件的修改
创建,切换分支 查看当前分支 合并分支 删除分支
解决冲突 克隆
git是分布式版本控制系统 . git直接记录快照 , 而非差异比较 , 它每次只记录有哪些文件做了更新,以及更新了哪些内容. git大部分操作都是本地执行 . 不用联网 . 时刻保持数据完整性 , git不会删除任何数据 , 所有操作都可以回滚 .
概念
工作区: 你写代码的地方(git仓库之外,相当于windows系统), 缓冲区:add之后的 ,本地仓库:commit之后的 . 远程仓库:push
初次使用
- 注册一个github账号 . 在公司的话一般是公司发的git账号和工作邮箱
git config --global user.name '账号'
git config --global user.email "邮箱"
$ git config --list
查看配置信息
git命令
Git 仓库创建
-
进入指定路径:
cd
-
查看当前目录
-
创建和删除文件夹
mkdir
和rm
-
创建git仓库
- 1 . 进入盘符 :
cd e:
- 2 . 创建文件夹 :
mkdir git01
- 3 . 进入文件夹下 :
cd git01
- 4 . 初始化仓库 :
git init
- 1 . 进入盘符 :
-
创建一个非空文件 :
vi
-
将文件从工作区添加到暂存区 :
git add
-
将文件夹下所有文件添加到缓存区:
git add .
-
清空重置缓存区 :
git reset
-
将文件提交到本地仓库 :
git commit 文件名 -m '注释'
-
将缓存区所有文件提交到本地仓库 :
git commit -m '注释'
修改提交的注释
- 修改最后一次提交的注释 :
git commit --amend
, 修改完成后git rebase --continue
- 修改倒数第多少次提交的注释 :
git rebase -i HEAD~2
- 将要修改的注释
pick
改为edit
, 保存退出 - 输入
git commit --amend
,修改标记为edit的注释. git rebase --continue
提交修改
- 将要修改的注释
查看修改
- 查看是否有修改的文件 :
git status
- 查看修改文件的修改内容 :
git diff 被修改文件
查看提交历史和回滚
- 查看提交历史(提交,不包括回滚) :
git log
- 回滚
- 回到上一个版本 :
git reset --hard HEAD^
- 回到上上个版本 :
git reset --hard HEAD^^
- 回到上上上个版本 :
git reset --hard HEAD^^^
- 回到指定版本 :
git reset --hard 版本号
(版本号不必写全) - 查看历史提交的版本(提交和回滚) :
git reflog
- 回到上一个版本 :
删除
删除, 历史代码版本库删除 : git rm
删除. 仅工作区文件 : rm
远程版本库的绑定
-
1 . 创建 SSH Key :
ssh-keygen -t rsa -C "邮箱"
, 三次回车
在指定目录下会生成密钥文件 : id_rsa(私钥) , id_rsa.pub(公钥)
-
2 . 登陆github绑定公钥
-
3 . 验证是否成功 :
ssh -T git@github.com
-
4 . 添加远程库
- 我要上传的本地库
- 创建远程库
- 连接远程库并初次上传代码
- 刷新githup, 远程库代码上传成功
- 远程库代码提交
- 除了第一次提交要加-u , 之后都:
git push origin 分支名
- 除了第一次提交要加-u , 之后都:
- 取回远程主机某个分支的更新
git pull origin 分支名
- 远程库代码不能删除操作 , 如果想删除只能
- 先在本地仓库
git rm
掉不要的文件,之后git commit -m '注释'
, 确保本地库是你想要的状态 git push -u origin 分支名
重新提交一遍, 覆盖掉远程库
- 先在本地仓库
- 远程代码库文件的修改则正常修改 , 修改后提交即可. 但是文件的更名会产生2份不同名字的相同文件 .
- 我要上传的本地库
分支管理
创建并切换分支 : git checkout -b 分支名
. 切换分支后进行的操作和master主分支互不影响
-b
: 创建并切换 , 相当执行了两条命令- 创建分支 :
git branch 分支名
- 切换分支 :
git checkout 分支名
查看当前分支
- 查看当前有哪些分支 , 并且当前处于哪个分支 :
git branch
合并分支 : git merge 被合并分支名
- 我现在想要master分支合并dev分支 :
- 切换到master分支
- 合并dev分支 :
git merge dev
删除分支 : git branch -D 被删除分支名
- 注意, 要首先切换别的分支, 不能自己删自己
解决冲突
- 冲突文件内容处理后
- add提交 :
git add 冲突文件名
- 但是解决冲突后提交 , 注意不要带文件名 :
git commit -m "注释,解决冲突"
克隆和fork
下载 , 下载下来的只是一个代码的压缩文件
克隆 , 克隆下来的任然是git仓库
- 复制url
- 使用
git clone
命令在文件夹中克隆git仓库
- 下载后就是本地仓库 , 正常操作即可
Fork
- 找一个项目点击Fork
- 自己的远程仓库里就有了一个复制的Fork库
待补充: 查看用户名和邮箱地址:
$ git config user.name
$ git config user.email
修改用户名和邮箱地址
$ git config --global user.name “xxxx”
S git config --global user.email “xxxx”