git命令
#初始化项目
git init
#查看工作区代码相对于暂存区的差别
git status
#将当前目录下修改的所有代码从工作区添加到暂存区 . 代表当前目录
git add .
#添加log说明
git commit -m "add vue project to github"
#将远程本地仓库与远程仓库关联,这里写的是本人的github
#执行这一步的前提是先要在github上创建好代码仓库
#执行完后还需要填写账号和密码
git remote add origin https://github.com/Essay-Core/vueStudyPro.git
# 将本地版本库推送到远程服务器
git push -u origin master
#再之后即可直接使用
git push
#当在另一台电脑中上传代码时,使用以下命令
git push --set-upstream origin master
分支使用
以前我一直有疑问,分支怎么用?什么时候用?
思路如下:
1,每编写一个功能的代码是,创建并切换到分支,
2,等功能编写完成后,再把分支和master合并
3,然后再把master同步到github
#查看当前有哪些分支
git branch
#新建分支 如分支名login
#开发阶段:dev
#生产阶段:prd
git checkout -b dev-login
#合并分支前,需要切换到master
#注意:如果分支修改过,需要先提交,才能切换,否则可能报错
git checkout master
#合并分支
git merge dev-login
#最后,将代码上传到github
git push
版本回退
#git revert 的三种用法
#撤销前一次 commit
git revert HEAD
#撤销前前一次 commit
git revert HEAD^
#撤销指定的版本,撤销也会作为一次提交进行保存。
git revert commit + (commit id)
#将最近一次提交节点的提交记录回退到暂存区
git reset --soft HEAD^
#将最近一次提交节点的提交记录回退到工作区
git reset --mixed HEAD^
#将最近一次提交节点的提交记录全部清除
git reset --hard HEAD^
#git revert是用一次新的commit来回滚之前的commit
#git reset是直接删除指定的commit
#或者直接把某个版本的代码使用git clone命令拉下来,我估计这个比较常用
疑惑
我最近遇到一个问题一直想不明白:
假设有一个有A和B同时进行一个项目,
A创建了github上的代码库并且上传了v-1版本代码,
B git clone 下载了github上的v-1版本代码
这个时候,A和B同时修改了代码
A先上传,然后B该如何操作?
#查看远程仓库分支
git remote -v
#如下命令可以在本地新建一个temp分支,
#并将远程origin仓库的master分支代码下载到本地temp分支
git fetch origin master:temp
#如下命令来比较本地代码与刚刚从远程下载下来的代码的区别:
git diff temp
#切换到主分支,然后将temp分支合并到主分支
git checkout master
git merge temp
#删除temp分支,-D强制删除
git branch -d temp