git流程图:
常用命令:
- git pull = git fetch+ git merge(本地仓库合并到工作目录)
- git pull --rebase = git fetch + git rebase
- git merge(合并)是非线性的,git rebase(变基)是线性的,merge会有很多merge信息,rebase不会,一般都用rebase
- 将dev分支的代码merge/rebase到master分支:git checkout master; git merge/rebase dev
- git fetch --all(拉取远程仓库信息到本地仓库)
- git reset --soft HEAD^/HEAD~1 需要commit
- git reset --mixed HEAD^ 默认,需要add
- git reset --hard 需要重写,本地没有了
- git stash(将本地的和add未commit的保存到堆栈) -> git pull -> git stash pop (弹出堆栈,恢复到本地或暂存区) (git stash list 查看stash情况)
- git cherry-pick 将别的分支的提交复制一份到此分支
- git revert -n committed 回退
- git clone 地址 -b 分支
- git remote add public 共仓地址(以后public就代表了公仓)
- git remote add origin 私仓地址(以后origin就代表私仓,若没有设置,其实origin默认代表公仓)
- git pull public/origin master 拉取代码:地址+分支
- git pull public master 此时若存在私仓,这是共仓合并到私仓
- git remote set-url origin 公仓地址
- git remote set-utl --push origin 私仓地址
- git pull --rebase; git push;上面两个url设置了之后,就是本地pull从公仓,本地push到私仓
- git status 查看文件状态
- git add . add所有,也可以指定文件名
- git commit 提交
- git push public 公仓地址,一般都是先设置了url,直接push
- git branch 查看本地分支
- git branch -r 查看远程分支
- git branch -a 查看所有分支
- git remote -v -a 查看共仓信息
- git checkout master 切换分支
- git log 查看日志
- git中文件的四种状态
- untracked: 未跟踪,此文件未添加到git的版本控制,通过add变成staged
- unmodify: 文件未修改,此时如果文件被修改,则状态变为modified
- modified: 已修改未add,未进入暂存区
- staged: 已add,未commit
- 查看邮箱用户名
- git congfig --global user.name
- git config --global user.email
- git commit -m “” 加上提交信息
- git commit -amend “” 修改提交信息
- git reflog 后悔药,可以看到被删除的committed
- git log 看不到被删除的committed
- git tag v1.0 打标签
- shelve changes 是idea自带的对未commit的代码进行搁置的功能,类似stash
- 常用提交代码步骤:git add(idea可以自动add) -> git stash -> git pull --rebase -> git stash pop ,此时如果有冲突手动解决冲突-> git add -> git commit -> git push(有问题,使用git reset --soft HEAD^回退,解决问题后再git commit)
- 感谢linux做出了那么好的代码管理工具,也希望国内的代码托管平台gitee越来越好
|