工作流: 本地仓库由git维护的三棵树组成:工作目录working,暂存区域index,head:指向最后一次的改动
管理冲突: 开发者本地提交和中央仓库分叉时,git会拒绝推送修改 发布功能前,需要 fetch 更新的中央提交,在它们之上 rebase 自己的更改, 若本地修改和上游提交冲突时,Git 会暂停 rebase 流程,需手动解决这些冲突
查看仓库
- git status
- git log --oneline
保存修改/添加和提交
- git add :添加到暂存区
- git commit -m '代码提交信息' //实际提交更新 tips:改动已经提交到了 HEAD,但是还没到你的远端仓库
撤销修改
查看之前的commit
- git checkout
- git checkout
- git checkout 撤销公共修改 git revert 撤销本地修改
- git reset
- git clean 重写Git历史记录
- git commit --amend
- git rebase
- git reflog
Git协作开发
分支
- git branch
- git checkout
- git merge 仓库同步
- git remote
- git fetch :
fetch远程仓库已更新的commit到本地仓库和rebase到已更新的commit的上面 --- git fetch和git rebase 或 git pull --rebase
- git pull :
- git push :push本地主分支(master branch)到远程仓库
查看/切换用户
指令操作
git checkout -b 分支名 创建并切换到该分支
git log -a提交记录
git reset --hard 版本号 回退到某一版本
git log --graph --pretty=oneline --abbrev-commit查看分支的合并情况
git log --graph命令可以看到分支合并图
git diff:查看difference即修改内容
git commit -m '':提交更改,把暂存区的所有修改提交到当前分支
git commit -- file 丢弃工作区的修改
git log --pretty=oneline
git reflog:查看所有分支的所有版本号
git reset --hard 版本号:回退到当前版本号
git checkout -b branchName 创建并切换到新分支
git checkout branchName切换到新分支
git switch -c branchName 创建并切换到新分支
git switch branchName 切换分支
git branch当前所在分支
git branch -a 查看远程分支
git branch -D branchName强制删除没有被合并过的分支
git remote查看远程仓库
git remote -v显示更详细信息:如果没有推送权限,就看不到push的地址
从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交
在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致
建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
tag:git中打标签
git tag查看所有标签:默认标签是打在最新提交的commit上的,默认head
或者要打在某次commit上:找到对应的commit id
git tag v0.9 f52c633
git tag tabName 打新标签
git tag -a -m 'tag info'指定标签信息
git show 查看标签信息
git tag -d v0.1 删除本地标签
git push origin :推送某个标签到远程
git push origin --tags一次性推送全部尚未推送到远程的本地标签
git push origin :refs/tags/删除远程标签
查看配置的别名:vim ~/.gitconfig
- Git commit message规范 feat:增加
拉取远程已有分支到本地:
git branch -a 查看本地分支
git fetch 同步远程分支???
git checkout optimize
然后本地就存在optimize这个分支了
rebase操作
rebase操作可以把本地未push的分叉提交历史整理成直线 ; rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比
暂存操作
在不提交当前分支的情况下切换到其它分支进行操作
- git stash :储存当前分支的修改
- git stash list :查看储存的修改信息
- 恢复stash的修改
//方法1:
git stash apply //但恢复后,stash内容并不删除,
git stash list
git stash drop //删除
tips:若分支上多个 stash,如果需要恢复指定的 stash ,可在命令尾部加id,如git stash apply stash@{0},同样删除指定 stash 项目则执行如 git stash drop stash@{1}
方法2:
git stash pop //恢复的同时把 stash 存储列表的内容也删了。这时候再执行git stash list 命令,id 为xxx 的储藏项目不会在列表中。