git操作代码流程:add/commit/push/checkout/reset/revert/pull/fetch/update

1、代码操作步骤图:
1)add(由工作区提交到暂存区)
git add src/com/ly/… 提交文件
命令行:git commit -m
“message”
git commit -a -m“massage”
命令行:git push origin
分支名(远程没有会新建)
git push origin(远程有分支)
命令行:git checkout --
src
可以将src文件夹里在工作区的撤销
命令行:git reset --hard
HEAD^
命令行:git revert HEAD
git revert
-n commitId
1)
命 令行:git pull origin 远程分支名:本地分支名
git pull origin master
git pull –ff origin

名称 | 解释 |
---|---|
Workspace | 工作区 |
Index / Stage | 暂存区 |
Repository | 仓库区(或本地仓库) |
Remote | 远程仓库 |
2、代码提交方式—add/commit/push
命令行:git add -A 提交所有变化
注:红色的是在工作区中的改动,绿色是已经提交到暂存区的改动,.DS_Store文件忽略,此文件为MAC中对文件属性的描述等,可加入到gitignore文件中。
2)commit(由暂存区提交到本地仓库)
3)push(由本地仓库提交到远程仓库)
3、代码回退方式(checkout/reset/revert)
1)checkout(撤销工作区的代码)
2)reset(撤销没有push前的代码)
Reset Type:
Mixed(默认):只是将git commit和index 信息回退到了某个版本,工作区的修改不会撤销。
Soft:只回退到commit 信息到某个版本.工作区和暂存区的改动不会撤销。
Hard:源码也会回退到某个版本,工作区、暂存区、本地仓库的改动都会撤销。
To Commit:
上一个版本commit就是HEAD^(HEAD~1)
上上一个版本就是HEAD^^(HEAD~2)
往上100个版本HEAD~100
或者直接HEAD commit ID
3)revert(已经push的代码)
原来的commit都没有变动,不过又增加了一个反向的commit。
4、代码拉取方式(pull/push/update)
Squash :将多次提交合并成一个新的commit
ff:直接将dev分支的commit信息合并到master上,没有冲突的时候可以。
no ff :pull之后会增加一条merge的commit记录,不会自动执行merge操作
2)fetch:拉取当前项目的所有远程分支到本地仓库,不会自动merge,更新本地仓库中的分支。
3)update:

Using Stash:将未commit的修改暂存到本地仓库,不会push到远程仓库。
Using
Shelve:将未commit的修改暂存在IDEA中,与stash的区别是,Shelve由IDEA管理,stash由git管理
Merge:git pull --no-rebase
Rebase:git pull --rebase
Branch
Default:采用该分支默认的更新策略,该策略在.git/config文件中设置,若无设置则等同于Merge方式。
reset与revert区别:
- git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。
- git reset是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容跟要revert的内容正好相反,能够抵消要被revert的内容。
- git reset只是在本地仓库中回退版本,而远程仓库的版本不会变化
后一篇:部署服务的流程