##前言
开发过程中版本控制是必须的,这个是git的一个笔记
简介
Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件
开始git
新项目
git init
编写完功能后,提交到github
git remote add origin git@git-pd.megvii-inc.com:ysy/ysy.git //指定远程git
git add . //提交全部文件
git commit -m '这是这次commit的描述' // commit的时候要提交备注
git push origin master
已经存在的项目
git clone git@git-pd.megvii-inc.com:ysy/ysy.git // 从远端克隆代码到本地
git add . //提交更改的文件
git commit -m '这是这次commit的描述' // commit的时候要提交备注
git push origin master
常用命令
分支相关 对于分支管理,要求是不同更新需要创建(忽略已存在)一个不同的分支,然后提交到远端(master分支不允许更改,只允许合并),自己创建的分支合并后自己要删除
查看分支
git branch //查看本地分支
git branch -r //查看远端分支
开启一个分支
git branch ysy //创建一个名为ysy的分支
git checkout -d ysy //创建一个名为ysy的分支,并切换到该分支
切换分支
git checkout ysy //切换到ysy分支
merge分支(对于已经确定更新完成的功能需要merge)
git checkout master //切换到master
git merge ysy //将ysy merge到master分支上
解决冲突后上传到远端
删除分支
git branch -D ysy //删除本地分支
git push origin :ysy //删除远端分支
基本命令 查看文件修改
git status //查看所有修改的文件名
git diff //查看所有文件修改的具体内容
git diff readme.md //查看readme修改的文件内容
取消修改(删除修改内容)
git checkout . //取消所有文件修改
git checkout readme.md //取消readme的文件修改
注意:git checkout 操作不可逆,属于硬操作,谨慎使用
查看log
git log
commit 8141b716ed258fd12c877b035c90dfdcafcf4ad8
Author: yangshuyu <810043299@qq.com>
Date: Fri Nov 8 18:55:50 2019 +0800
cookie名字重新设置
commit ce141e1e136e4b6caa76cc49e68fceea131c90bc
Author: yangshuyu <810043299@qq.com>
Date: Fri Nov 8 18:18:09 2019 +0800
报表与第三方登录:
commit a44db2aa643eb455a634086b70aee31d3933a0a0
Author: yangshuyu <810043299@qq.com>
Date: Fri Nov 8 18:16:56 2019 +0800
第三方登录增加回调
commit 414f79d47a67acde9f2bf77095da9be562b24680
Author: yangshuyu <810043299@qq.com>
Date: Fri Nov 8 17:12:46 2019 +0800
第三方登录
代码回滚(新上的功能有问题,需要回滚到前面)
git log //查看所有版本相关记录
git checkout a44db2aa643eb455a634086b70aee31d3933a0a0 //切换到这次commit
进阶
保存当前本地更新到缓存区 我们有时会遇到这样的情况,正在dev分支开发新功能,做到一半时有人过来反馈一个bug,让马上解决,但是新功能做到了一半你又不想提交,这时就可以使用git stash命令先把当前进度保存起来,然后切换到另一个分支去修改bug,修改完提交后,再切回dev分支,使用git stash pop来恢复之前的进度继续开发新功能
git stash
git stash save '描述信息'
以上两条是将代码保存到缓存区,第一条是没有注释
查看所有stash
git stash list
回复缓存区的代码
git stash pop 恢复最新的进度到工作区。git默认会把工作区和暂存区的改动都恢复到工作区。
git stash pop --index 恢复最新的进度到工作区和暂存区。(尝试将原来暂存区的改动还恢复到暂存区)
git stash pop stash@{1}恢复指定的进度到工作区。stash_id是通过git stash list命令得到的
强制回滚代码
git reset a44db2aa643eb455a634086b70aee31d3933a0a0
强制回滚到某一个版本,硬操作,不建议使用
查看当前远程库地址
git remote -v
origin git@git-pd.megvii-inc.com:yangshuyu/itop-backend.git (fetch)
origin git@git-pd.megvii-inc.com:yangshuyu/itop-backend.git (push)
修改远程仓库地址(指定新的远程仓库)
git remote rm origin
git remote add origin git@git-pd.megvii-inc.com:yangshuyu/mtco-web.git //指定新的远程库