简单的代码提交流程:
git status 查看工作区代码相对于暂存区的差别
git add 将当前目录下修改的所有代码从工作区添加到暂存区,代表当前目录
git commit -m '这是一个对此次提交的说明' 将暂存区内容添加到本地仓库
git pull origin master 先将远程仓库的master中的信息同步到本地仓库master中
git push origin master 将本地版本库推送到远程服务器
origin是远程主机(origin是可以改名的),master是代表远程服务器上的master分支,分支名是可以修改的
撤销修改
git reset --hard HEAD^N/commit-id #回退
git checkout -- filename #撤销工作区某个文件的修改
git diff [<filename>] 查看工作区和暂存区的不同
对于项目而言 所有增加的代码 文件 或者本地项目所有变化 上传到 仓库 都离不开 git add -A、git add -u、git add
git add -A 提交所有变化
git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
修改上线分支( hotfix ):
git checkout master
git pull origin master
git flow hotfix start xxx(hotfix_name)
fix and add and commit
git push origin hotfix_name
分别MR到master和devleop
修改测试分支
#如果是第一次,需要执行
git pull origin release/xxx
#接着
git checkout release/xxx
git pull origin release/xxx
git checout -b feature/fix_name
fix and add and commit and push
MR request
git 远程分支覆盖本地
有时候同一个分支,远程和本地都被修改得面目全非,如果想用本地的替换成远程的,用下面的命令
git fetch --all git reset --hard origin/master #这里master要修改为对应的分支名 git pull
git 撤销所有本地修改
git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态
git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop回复。
git reset --hard HASH #返回到某个节点,不保留修改。
git reset --soft HASH#返回到某个节点。保留修改