Git命令整理(子模块、基本的cmd命令)

一、基本cmd命令(可结合Git使用)

退出当前目录返回上一级目录: cd ..
跳到下一级目录:cd 文件夹名称
查看当前目录 :dir
创建文件夹:mkdir 文件夹名称
创建文件 :echo >文件名称
打开文件: .\文件名称

二、本地版本库

1.Git命令初级命令

Pwd 显示当前目录
Git init 将当前目录设为仓库
Git add 文件名
Git commit -m"注解" 提交文件到仓库(m里面包含注解)

2.Git相关概念

工作区:working dirtectory
版本库 :repository (即:.git目录)
stage (index) 暂存区
git add 事实上是将文件添加到暂存区
git commit 是将暂存区内容提交到当前分支
git push 将当前分支推送到远程服务器
重要:修改不添加(git add)到暂存区的话,提交(git commit)是无效的,所以 每次提交前都得git add。

3.Git 撤销修改

git log 查看提交历史
git reset --hard HEAD~n 回退到之前n版本 ,n 代表当前版本的之前n版本
git reflog 查看命令历史以及版本信息
git reset --hard 版本号 回退到指定版本号

撤销三种情况 :
(1)修改了工作区,没有提交到暂存区 : git checkout -- filename
(2)修改了工作区,并add到了暂存区 : git reset HEAD filename
(3)修改了工作区,并提交到本地版本库 :
git reflog 查看提交历史版本号
git reset --hard 指定版本号 (这个无需空格,hard后)

4.Git 删除文件

文件删除两种情况:
1.删对了
(1)rm filename(cmd命令) 工作区删除了该文件
(2)git rm filename(git 命令) 版本库未删除,删除版本库
2.删错了:
(1)rm filename(cmd命令) 工作区删除了该文件
(2) git checkout filename 从版本库将删除文件检出到工作区(即恢复文件)

5.创建和合并分支

(1)创建分支 git branch mybranch
切换分支: git checkout mybranch
(二合一)创建并切换分支: git checkout -b mybranch
(2)合并分支到当前分支:git merge mybranch
(3)合并完,删除分支:git branch -d mybranch

6.解决冲突

(1)git log --graph --pretty=oneline --abbrev-commit(查看分支 合并情况)
(2)git log --graph (查看分支合并图)
(3)git status 查看冲突信息。选择git add

7.分支管理策略

两种模式:
(1)fast forward 默认
(2)no ff : git merge --no-ff -m "merge with no-ff" mybranch 以no ff的形式合并分支{这样合并能看出历史合并分支}

8.stash分支:(隐藏保存分支)

修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场

(1)git stash 保存当前工作分支
(2)git checkout master 切换到主分支或者bug修改分支修改Bug
(3)git checkout mybranch 切换到工作分支
(4)git stash list
(5) git stash apply 恢复工作内容
git stash drop 删除stash内容
二合一:git stash pop

9.git 删除分支

两种情况:
(1)合并完分支进行删除:git branch -d mybranch
(2)未合并删除分支 : git branch -D mybranch

10.查看远程库信息

(1) git remote 查看远程库 git remote -v显示更详细的信息
(2) git push origin master 将当前分支推送到master分支上了
(3) git pull指定本地分支与远程分支的链接
(4) git branch -a 查看远程仓库分支

11.Git添加子模块

(1) git submodule add url 子模块路径
(2) git commit -m"提交子模块"
(3) git push origin remotebranch 将改动push到远程库

12.Git拉取远程分支

两种方式
(1)git fetch
git fetch origin master:tmp 拉取远程分支到本地分支
git diff tmp 比较查看区别
git merge tmp 合并远程分支

(2) git pull origin master
git pull origin 远程分支名
git push -u origin robertnote:robertnote 本地新建分支提交到远程分支,并设置追踪
(3)将分支代码合并多次commit提交
git reset --soft commit号 然后force push

13.多人协作工作模式:

1.将本地工作文件提交到本地仓库
2.pull远程库最新内容
3.merge本地冲突
4.push本地分支

14关于merge还是rebase的选择

不要想了,都用merge,merge在多人协作的模式下,会减少代码的合并冲突。
rebase在使用不当的情况下经常会造成代码冲突,虽然它的时间线好看。

你可能感兴趣的