这里记录一下 Git 平时的常用操作, 本文基于安装了 Git, 且有 GitHub 账号的前提.
一, 将本地项目 (不是 Git 项目) 提交到 Git 上
1.1, 采用 Git clone
先在 Git 上建立一个 project, 然后本地使用 Git clone <项目链接地址> 克隆到本地, 然后将需要上传到 Git 上的项目全部复制到该文件下, 然后采用以下三个命令
Git clone 还有一个 - b 参数 这个参数后面接着分支名称, 可直接拉取指定分支代码, 不用本地再使用 Git checkout 《分支名称》来切换分支
Git add <文件> // 也可以使用路径, 如 Git add ./ 代表将当前路径下的所有文件都加入到暂存区
- Git commit -m '提交说明文字' // 执行完后, 暂存区的代码会到本地仓库里去
- Git push // 执行完后, 本地仓库的代码会到远程仓库里
这种方法比较简单
1.2, 采用 Git init
在本地项目中使用 Git init 命令, 然后同样采用
- Git add ./
- Git commit -m '文字说明'
之后在 Git 上创建一个空的 Git 项目文件夹, 然后采用
Git remote add origin <Git 项目链接地址>
Git push -u origin master
即可
创建一个空的 Git 项目
如果没在 Git 上创建, 则会出现以下情况
当创建后,
此时项目已经到了 GitHub 上去了.
在这里提个小坑, 如果你在 GitHub 上创建项目的时候勾选了
那么你在 push 的时候会出现下面一个问题
这是因为, 你在 GitHub 上创建的时候, 新建一个 readme 文件, 在我们平时要 push 项目到 Git 上, 都会先 Git pull 一下, 在这里也是一样
先使用 Git pull --rebase origin master, 从 Git 上拉取文件, 然后再 push,
在这里 Git push -u 中的 - u 参数就是创建远程分支的一个意思
二, 合并分支代码
先切换到指定分支, 如你要将 dev 分支代码合并到 prd 分支, 则你只需(记住, 最好先 Git pull, 和 Git status, 防止远程有修改和本地有修改情况)
- Git checkout prd
- Git merge dev
- // 到了这里最重要的是要先检查有没有冲突, 有冲突的话, 先找到冲突文件, 手动解决冲突, 解决完后
Git add 《文件》或者 转到 最外层目录 采用 Git add ./
- Git commit -m '提交说明文字'
- Git push
如果没有冲突文件, 可以直接跳过 Git add 和 Git commit 两个操作
三, 版本回退
采用 Git log 查看提交历史
然后要回退到哪个分支, 就复制红框中的字符串, 假如这里要回退到第二个红框的所在分支,
- Git reset --hard <commit id> //r 如果回退到 上一个分支 也可以用 Git reset --hard HEAD^
- Git push -f origin master
然后就回退了
四, 本地创建新的分支
如 Git checkout -b <分支名称>
然后 Git push origin <分支名称>
五, 放弃本地修改
关于这种情况有三类, 一个是本地修改没加入暂存区, 第二个是已经修改加入了暂存区, 第三个是修改加入了本地仓库
5.1, 本地修改没加入暂存区, 即没使用 Git add 命令
采用 Git checkout -- fileName 值得注意的是这个文件一定是在 Git 上存在的, 对于新增的文件, 这个命令没用, 不过对于新增的可以直接删除.
如果要退回所有文件修改, 则可以 Git checkout . 命令, 注意后面有一个点.
5.2, 本地修改已加入暂存区, 即使用了 Git add 命令, 但还没使用 Git commit
采用 Git reset HEAD fileName 其中 fileName 为加入到了暂存区的文件, 对于新增的也适用, 执行完后, 修改的内容, 并没有立即消失, 而是回到了 5.1 的状态
然后再按照 5.1 的操作再执行一遍即可, 如果要放弃所有修改, 则可以使用 Git reset HEAD . 命令, 注意这里有一个点.
5.3, 本地修改已加入了本地仓库
其实这种情况就是类似于版本回退, 唯一不同的时候, 执行完相应命令不用 push
Git reset --hard <commit id> //r 如果回退到 上一个分支 也可以用 Git reset --hard HEAD^
------------------------------------------------------------------------------------------------------------- 分界线 ------------------------------------------------------------------
以上就是全部内容, 若有错误或不足之处, 还望指正, 谢谢!
来源: http://www.bubuko.com/infodetail-3042708.html