资料
git官方资料 https://git-scm.com/book/zh/v2
远程
git pull
git checkout feature/new_framework_control2.0
git pull origin feature/new_framework (在分支 new_framework_control2.0下执行)
解决冲突
git add 产生冲突的文件
git commit
git push origin HEAD
常规流程
从远程端clone git clone XXXXXX
比如 切换到devlop (git checkout devlop)
git pull
新建一个专门的分支 git checkout -b feature/branch1
根据需要对分支源码进行修改
git add .
git commit -m "fix/bug"
git push --set-upstream origin feature/branch1
在远程端提交pr
git clone
拷贝一个 Git 仓库到本地
git add
git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
git add -A 提交所有变化
git commit 的使用
git commit --amend 可以修复当前提交的错误 并不是直接修改原 commit 的内容,而是生成一条新的 commit
提交内容格式
feat : 新功能
fix : 修复bug
docs : 文档改变
style : 代码格式改变
refactor : 某个已有功能重构
perf : 性能优化
test : 增加测试
build : 改变了build工具 如 grunt换成了 npm
revert : 撤销上一次的 commit
chore : 构建过程或辅助工具的变动
git checkout
git checkout . 放弃工作区中全部的修改(add 之后的数据不会被丢弃)
git checkout -- filename 放弃工作区中某个文件的修改
git checkout -f 强制放弃 index 和 工作区 的改动(add 之后的数据也会被丢弃)
git branch
git branch newbranch 创建分支
git checkout branchname 切换到分支
git checkout -b branchname 创建并切换到新的分支.
git branch -d feature1 删除 branch (先用 checkout 把HEAD 指向其他地方)
git stash
git stash 临时存放工作目录的改动 (可以先不用add 和 commit 就可以进行checkout )
git stash pop 切回你的分支
git status
git stash -u 将没有被 track 的文件也进行保存
git status 查看当前状态
git push
把当前 branch 的位置(即它指向哪个 commit)上传到远端仓库
git push --set-upstream origin feature/branch1 远程分支不存在时新建分支时
git log
列出你的提交历史 (当需要回退版本时 可以根据log提供的commit 的引用 进行回退)
log -p 查看详细历史 可以看到每一个 commit 的每一行改动
log –stat 查看简要统计 大致看一下改动内容
git show 查看具体commit git show 5e68b0d8 xxx.txt
git pull (fetch 和 merge的组合)
pull 的内部操作其实是把远程仓库取到本地后(使用的是 fetch),再用一次 merge 来把远端仓库的新 commits 合并到本地
git merge
git merge branch1 合并分支
合并冲突时会在 文档中留下 <<<===>>> 辅助文字 需要手动解决冲突 解决完冲突再进行 git add 和 git commit
git merge --abort 放弃解决冲突 Git 仓库就会回到 merge 前的状态。
git diff (可查看未提交的内容)
git diff --staged (或 --cached) 查看暂存区和上一条 commit 的区别
git diff 不加选项参数 显示工作目录和暂存区之间的不同
git reflog
git reflog 查看 Git 仓库中的引用的移动记录 (默认查看 HEAD 的移动历史)
git reflog master 查看master的移动记录(或者指定的分支名)
当你删除某个分支 需要恢复时 可以通过git reflog 查找到对应的 HEAD 然后执行操作 例如:git checkout c08de9a git checkout -b branch1 即可以恢复被删除的分支
git reset
git reset --hard HEAD^ 丢弃最新的commit