1、git add . 2、git commit -m “test”; 3、git branch test(创建分支) 4、git checkout test (切换分支) 5、git rebase/merge master(合并主分支的修改-子分支操作) 6、git pull <远程主机名> <远程分支名>:<本地分支名> (远程分支与本地分支合并) 7、git push origin test(上传分支) 8、git branch -a (查看所有分支) 9、git branch (查看本地分支) 10、git branch -d test(删除本地分支) 11、git branch -r -d test(删除远程分支) 12、git remote add origin https://xxx.git (与远程仓库关联) 13、git remote -v (查看远程git地址) 14、git fetch origin + git merge origin/test (下载+合并) 15、git branch --set-upstream master origin/next(手动建立分支追踪) 16、git status 17、history 18、git diff 19、git push origin HEAD:refs/for/master(pushReview,git prm) 20、git log 21、git checkout -b zhangchenchen origin/zhangchenchen(远端拉+切换) -b可以创建分支并进行切换 22、git pull --rebase (git fetch + git rebase, commit后不会新建分支) 23、git cherry-pick xxx(分支代码合并)
23、Index内回滚 #取消暂存 git reset HEAD #撤销修改 git checkout filename #远程回滚 git revert commitID
Workspace(工作区):当前开发的位置
1、Workspace:程序员进行开发(改的)的地方,是当前看到的,也是最新的。 2、平常项目开发就是拷贝远程仓库中的一个分支,基于该分支进行开发,在开发过程中就是对工作区的操作。 git pull:从远程仓库拉取最新的代码到工作区,相当于git fetch+git merge git diff: 查看修改但未暂存的文件
Index(暂存区) 1、Index / Stage(暂存区):.git目录下的index文件, 暂存区会记录git add添加文件的相关信息(文件名、大小、timestamp…),不保存文件实体, 通过id指向每个文件实体。 2、可以使用git status查看暂存区的状态,暂存区标记了当前工作区中,哪些内容是被git管理的。 3、当项目完成某个需求或功能后需要提交到远程仓库,那么第一步就是通过git add先提交到暂存区,被git管理。 git add:工作区修改的内容提交到暂存区,交由Git管理 git status:查看暂存区文件状态
Repository(本地仓库) 1、Repository(仓库区或本地仓库):保存了对象被提交过的各个版本,比起工作区和暂存区的内容,它要更旧一些。 2、git commit 后同步index的目录树到本地仓库,方便从下一步通过git push 同步本地仓库与远程仓库。 3、可以在任何地方新建本地仓库,只需要在目标目录下执行"git init"指令,就会将此目录自动初始化为本地仓库,同时它会新建".git"目录 git commit:将暂存区的内容提交到本地仓库 git clone 或者 git fetch:从远程仓库拷贝/拉取代码到本地仓库
Remote(远程仓库) 1、Remote(远程仓库)的内容可能被分布在多个地点的处于协作关系的本地仓库修改,因此它可能与本地仓库同步,也可能不同步,但是它的内容是最旧的。 git push:将本地仓库的内容提交到远程仓库
在执行pull之后,进行下一次push之前,如果其他人进行了推送内容到远程数据库的话,那么你的push将被拒绝。因此push前要先pull。 什么是分支?可能存在多个Release版本,并且需要对各个版本进行维护。 这四种常用的分支: master(线上), develop(开发), release(预发布), hotfix(线上bug修复)
常用分支命令: git branch test(创建分支) git checkout test (切换分支) git rebase/merge master(合并主分支的修改-子分支操作) git branch -a (查看所有分支) git branch (查看本地分支) git branch -d test(删除本地分支) git branch -r -d test(删除远程分支)
每个人在本地分支解决冲突,不会在主干上产生冲突: 自己的工作分支git checkout work 提交工作分支的修改git commit -a 回到主分支git checkout master 获取远程最新的修改,此时不会产生冲突git pull 回到工作分支git checkout work 合并主干的修改,如果有冲突在此时解决git merge master或git rebase 回到主分支git checkout master 合并工作分支的修改,此时不会产生冲突。git merge work 提交到远程主干git push