这里记录一下git平时的常用操作,本文基于安装了git,且有github账号的前提。
一、将本地项目(不是git项目)提交到git上
1.1、采用git clone
先在git上建立一个project,然后本地使用git clone <项目链接地址> 克隆到本地,然后将需要上传到git上的项目全部复制到该文件下,然后采用以下三个命令
git clone 还有一个-b参数 这个参数后面接着分支名称,可直接拉取指定分支代码,不用本地再使用git checkout 《分支名称》来切换分支
1 git add <文件> // 也可以使用路径,如git add ./ 代表将当前路径下的所有文件都加入到暂存区 2 git commit -m '提交说明文字' // 执行完后,暂存区的代码会到本地仓库里去 3 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^
-------------------------------------------------------------------------------------------------------------分界线------------------------------------------------------------------
以上就是全部内容,若有错误或不足之处,还望指正,谢谢!