Git从入门到删库跑路
git基本操作
git初始化
1 | cd $work # 进入工作目录 |
git查看当前个人信息
1 | git config user.name # 姓名 |
git个人信息初始化
1 | git config --global user.name "your name" # 姓名 |
git文档忽略机制
1 | cd $work |
git添加文件
1 | git add . # 添加所有文件 |
注:如果只是修改或者删除了已被 Git 管理的文档,是没必要使用 git add 命令的
git提交
1 | git commit |
当进入commit日志文件时,输入字母 c
可以进入编辑状态,这个时候就可以修改注释信息啦 ~
修改完之后按 esc
键退出编辑状态,再按大写 ZZ
就可以保存退出vim编辑器
查看当前git仓库信息
1 | git remote show origin |
查看版本历史
1 | git log # 查看版本历史 |
b95f2282d2f29ec3b13ac0dd38ad32ad17e7b985为版本号,可通过 git show
查看:
1 | git show b95f2282d2f29ec3b13ac0dd38ad32ad17e7b985 |
撤销与恢复
保存本地修改,只撤销提交记录
执行
git log
命令,显示已提交的信息1
git log
执行
git reset 你提交前的一个commit id
1
git reset commit_id
不保存本地修改,直接还原到某一id版本
执行
git reset –hard 你想要到某一个版本的commit id
1
git reset –hard 你想要到某一个版本的commit_id
注:该操作会强制将本地git仓库还原至该id的文件
git reset —hard 操作后的数据恢复
分为三种情况:
- 之前的修改进行了
commit
提交,也就是说我们回退前的修改(曾经)存在于版本里; - 之前的修改未进行
commit
提交,但是进行了git add
操作; - 之前的修改未进行
commit
提交,也未进行git add
操作。
针对第一种情况:
拿到之前修改的
commit id
:1
git reflog
git reflog
命令,它会显示出你之前的所有操作- 执行
git reset --hard [hash]
就可以回退到之前修改的状态,比如62f039e
就是我的reflog
提交的哈希值,对其进行reset
即可
针对第二种情况:
主角命令 git fsck
,这里呢不具体讲解此命令,只是简单描述利用此命令进行文件恢复。
如图示,我新建了文件 c.txt
并添加了内容 ‘git fsck’,添加到缓存之后进行了 reset
操作, 此时因为没有进行 git commit
操作所以没有hash值,可供恢复,这个时候需要进行操作 git fsck --lost-found
操作,返回如下结果:
关于此命令,git官网的解释
根据提示,找到目录’.git/lost-found’,可以看到,
我们在commit’和‘other’目录下分别看到命令窗口打印出的文件,在‘other‘目录下找出之前遗失的文件
然后新建’c.txt’文件,并将文件内容复制过去,结束。
是不是很麻烦,特别是一次提交的文件多了,一个一个新建(修改)复制过去好烦哦。
是的很烦,所以保持良好的习惯。永远不要让这种操作降临到自己身上才是正道。(这只是为不可控的意外情况准备的)
针对第三种情况:
暂时还没有找回的办法
获取帮助
1 | git help # 获取帮助 |
git协同开发
克隆仓库
1 | git clone git_address |
获取仓库最新文件
1 | git pull git_address |
1 | git add . |
推送至远程仓库
1 | git push origin master # 将本地master分支的最新修改推送到远程仓库 |
git项目分支管理
创建分支
1 | git branch branch_name |
转换分支
1 | git checkout branch_name |
分支合并
1 | git merge branch_name |
删除分支
1 | git branch -d branch_name |