- 基本操作
- git add 将文件从工作区添加到暂存区
- git add . 把所有修改的信息添加到暂存区
- git add 文件名 把该文件修改的信息添加到暂存区
- git commit 将暂存区的修改添加到本地仓库(会生成一个commmit id)
- git commit -m 'message' message表示备注信息
- git push origin 分支名字 将本地仓库的推送到远程分支,如果已经与远程分支建立连接,可以直接 git push 推送到当前分支的远程分支,未建立连接时需要加后面的内容
- git add 将文件从工作区添加到暂存区
- 分支操作
- git branch 查看本地分支,其中带 * 号的为当前分支
- git branch -r 查看远程分支
- git branch -a 查看所有分支
- git checkout dev 切换到dev分支
- git branch dev 创建dev分支
- git checout -b dev 从当前分支创建dev分支并切换到dev分支
- git branch -d dev 删除本地dev分支
- git push origin --delete dev 删除远程分支
- git merge dev 将dev合并到当前分支
- git merge --abort 撤销合并操作(该命令仅仅在合并后导致冲突时才使用。git merge --abort将会抛弃合并过程并且尝试重建合并前的状态)
- git fetch origin dev 拉去远程dev分支到本地
- 配置
- git config --global user.name "name" 设置用户名
- git config --global user.email "eamil" 设置邮箱 若不需要全局设置去掉global即可
- git config --list 查看git所有配置信息
- git config user.name 查看配置用户名
- git remote
- git remote -v 查看远程仓库详细信息
- git remote add origin <远程仓库地址> 添加远程仓库关联
- git remote remove <远程仓库名称> 删除远程仓库
- git remote set-url origin <新的远程地址仓库> 修改远程仓库关联
- tag
- git tag 查看所有本地所有tag
- git tag v1.1.0 创建一个名字为v1.1.0的tag
- git push origin v1.1.0 将tag推送到远程
- git tag -d v1.1.0 删除本地tag
- git push origin :refs/tags/v1.1.0 删除远程tag
- git clone
- git clone 远程仓库地址 克隆远程代码到本地
- git clone http://github.lin.com/aaa/abc.git MySampleDir 克到本地并重命名为 MySampleDir
- git restore
- git restore指令使得在工作空间但是不在暂存区的文件撤销更改,也就是你还没有执行add 操作的时候,可以用来恢复文件
- 先用git status 查看下状态,看看改动了哪些文件
- git restore 文件路径 根目录开始
- git restore --staged index.js 将index文件从暂存区撤出(也就是对这个文件撤销你执行的add操作)
- git reset
- git reset 命令的作用是撤销暂存区的修改或本地仓库的提交
- git reset --soft 移动HEAD到指定的 commi 节点,但保留 工作区和暂存区的内容,简单来说就是你的代码还在只是变成了未提交状态或未添加状态
- git reset --hard 彻底丢掉当前版本的修改,并更改HAEAD移动到指定的commit节点;就是回退到指定的版本。不保留本地任何修改
- git reset --hard head^ 回退到上一次的版本
- git reset --hard dev(分支名) 将dev分支的内容完全替换当前分支
- git stash
- git stash 命令的作用是保存当前分支工作目录所做的修改。即如果当前分支所做的修改你还不想提交,但又需要切换到其他分支去查看,就可以使用该命令
- git stash 保存当前进度
- git stash list 查看已经保存的历史进度记录
- git stash pop <历史进度id> 重新应用某个已经保存的进度,并且删除进度记录
- git stash apply<历史进度id> 重新应用某个已经保存的进度,但不删除进度记录
- 补充一点,这个命令应用场景还可以是,比如说,你正在开发一个新功能,但是你忘记切换新的分支了,而是在之前的分支上进行的,而这个分支上有你新功能不需要的代码,这个时候,就可以在当前分支git stash,然后切换到新分支,git stash pop <id>
- git cherry-pick
1.将一个分支上面的commit 合并到另外一个分支
2.git chery-pick commitId 将这个commitId 提交的内容合并到另外一个分支
例如:我们develop上有featA和featB 两个功能块 ,需要将featA合并到master,featB不需要
假设 featA对应的commitId为 879fb40e3c0b14602757b40ed16ecea79811253f
git checkout master 先切换到master分支
git cherry-pick 879fb40e3c0b14602757b40ed16ecea79811253f 合并此commitId的功能
git push 提交到远程master分支
注意:master上新的commit id与develop上的id并不相同,即只是将devlop上的修改拷贝过来作为一个新的提交