git基本工作流
1、本地创建仓库
两种方式:新建项目初始化仓库,已有项目克隆到本地
git init
——初始化
git remote add origin https://github.com/blazecake/JavaTest.git
git remote add myprivate git@gitlab.com:Chau/JavaTest.git
——映射到远程仓库,origin为仓库别名,你也可以指定其他名称;也可以添加多个远程仓库映射
git clone url
——克隆默认分支master
git clone url -b 分支名
——克隆指定分支
2、添加文件到版本控制、提交修改
git add .
——将所有修改和新建的文件添加到暂存区
git add 文件名
——添加指定文件到暂存区,文件夹会添加该文件夹及所有子文件
git commit -m “提交注释”
——提交修改,只会提交暂存区的文件,提交的修改只提交到了本地仓库。
git commit -am “提交注释”
——上面两步合并
与SVN不同的是,git提交的代码是本地仓库,而SVN提交只能提交到远程仓库,
所以在无网络时git可以把已完成的模块代码提交到本地,然后继续开发下一个模块。
SVN在无网络时不能提交,如果继续开发,将会使所有修改都混在一个提交里了。
3、比SVN多的一步,本地仓库“提交”同步到远程仓库
git push
——将当前分支推送到远程仓库对应分支,已指定了upstream
git push -u origin 分支名 //-u指定当前分支的upstream
——将指定分支推送到origin远程仓库对应分支,若远程仓库没有会新建对应分支
origin是远程仓库别名,无论是否添加多个远程仓库地址,该分支第一次push都需要指定upstream,此后可直接用上面的命令git push,推送的远程仓库是上次设置的upstream。
git push -u origin --all
——将所有分支推送到远程仓库
4、远程仓库新“提交”同步到本地仓库
git fetch
——拉取修改,不合并到本地仓库
git pull
——拉取修改,与本地仓库对应分支合并
git pull --rebase
——拉取修改,与本地仓库对应分支合并
git checkout --track origin/分支名
——拉取远程指定分支,并切换到该分支,一般用于远程新增的分支,而本地仓库没有
5、分支管理
git branch 分支名
——新建分支
git checkout 分支名
——切换分支
git checkout -b 分支名
——新建并切换分支
git branch -d 分支名
——删除本地仓库分支
git push origin --delete 分支名
——删除远程仓库分支
git branch
——查看本地分支列表
git branch -r
——查看远程仓库分支列表
git merge 分支名
——将指定分支合并到当前分支,两条分支并行合并,会增加一个合并节点
git rebase 分支名
——两条分支串行合并,指定分支的新提交节点在下边,当前分支新提交节点在上边。
git rebase --abort –终止rebase
git rebaes --continue –解决冲突后继续rebase
6、其他功能
git branch -m 原分支名 新分支名
——修改分支名
git remote -v
——查看远程仓库地址
git remote rm origin
——移除origin远程仓库映射
git remote set-url origin 远程仓库地址
——修改origin远程仓库映射
git mv --force myfile MyFile
——不小心把类名写成了小写并已提交,改成大写也无法提交,可以使用修改文件名命令
git stash save “名称”
——贮藏未提交文件
git stash show
——查看贮藏
git reset –soft 节点串
——重置到某个提交节点,重置到某个节点后其之前的节点不复存在,所有修改不会丢失,归类到工作区,相当于git add和git commit的逆操作
merge合并时需要输入提交信息的处理:
在英文输入法下按i键,底部显示插入状态,输入文本信息;
按Esc退出编辑;
英文输入法下输入:w 保存文本信息(前面包括冒号),底部提示“******已写入”;
英文输入法下输入:q 退出编辑。
最后
任何命令参数都可以通过help快速查看,如:
git push --help
git rebase --help