克隆指定分支到本地:git clone -b 分支名 仓库地址
拉取远程分支创建本地分支:git checkout -b 本地分支名x origin/远程分支名x (会在本地新建分支x,并自动切换到该本地分支x,并建立映射关系)
git fetch origin 远程分支名x:本地分支名x (会在本地新建分支x,但是不会自动切换到该本地分支x,需要手动checkout,不会建立映射关系)
删除本地分支:git branch -d dev20181018 git branch -D dev20181018(强制删除)
删除远程分支:git push origin --delete dev20181018
查看本地分支与远程分支的映射关系:git branch -vv
本地当前分支与远程分支建立关联:git branch -u origin/分支名
撤销本地分支与远程分支关联:git branch --unset-upstream
修改本地分支名:git branch -m old_branch new_branch
提交本地分支到远程仓库:git push origin branch1
在当前分支有未提交内容时切换分支:git stash
查看当前stash缓存内容:git stash list
取出指定下标为1的缓存:git stash apply stash@{1}
删除 stash@{1}的内容:git stash drop stash@{1}
查看commit提交记录:git log 退出git log状态:Q
修改commit信息:git commit --amend -m “新的提交信息”
回退提交记录:git reset --hard 1094a(commit前几位)
git reset --hard HEAD^ 回退到上个版本 如果不识别:git reset --hard HEAD~1
git reset --hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次提交之前
git reset --hard commit_id 退到/进到 指定commit的sha码
git push origin beike_tools_master --force 强制推到远程仓库
git reset --hard:重置位置的同时,直接将 working Tree工作目录、 index 暂存区及 repository 都重置成目标Reset节点的內容,等同于清空暂存区和工作区;
git reset --soft:重置位置的同时,保留working Tree工作目录和index暂存区的内容,只让repository中的内容和 reset 目标节点保持一致,因此原节点和reset节点之间的【差异变更集】 会放入index暂存区中(Staged files)。就是工作目录的内容不变,暂存区原有的内容也不变,只是原节点和Reset节点之间的所有差异都会放到暂存区中
revert:并不是回退,相当于新一次提交,head指向新的下个版本,只是撤销某个commit,之后的其他commit可以保留。
将远程仓库代码合并到本地分支时,如果因为本地修改不能直接pull时,可以git stash保存本地修改,再git pull origin master,然后再git stash pop找回本地修改。
远程分支强制覆盖本地分支:git fetch --all git reset --hard origin/develop
不提交某些文件:将文件或目录放入.gitignore文件,并且确保远端没有该文件,如果该文件已上传,git rm -r --cached .idea 用该命令删除