git 常用命令
查看状态
1.查看当前分支状态(有无待提交代码)
git status
提交代码
1.添加到暂存区
1. 提交全部
git add .
2. 只提交某个文件夹
git add 【文件名】
2.添加到本地仓库
git commit -m '说明'
3.提交到远程仓库
git push
git push -f origin master(强制推送,慎用)
查看分支
1.查看本地分支
git branch
2.查看远程分支
git branch -r
3.查看本地和远程分支
git branch -a
创建切换分支
1.创建dev分支(还处于当前分支,没有切换到dec分支)
git branch dev
2. 切换到dev分支
git checkout dev
3. 创建并切换到dev分支
git checkout -b dev
合并分支
例如:我在dev分支进行开发完成,要合并到master分支
1. 拉取最新代码并切换到master分支
git pull (在团体开发时,合并分支前先拉取最新代码)
git checkout master
2. 合并分支
1. 方法一
git merge dev
2. 方法二
git pull 仓库地址/origin dev
删除分支
1. 删除本地分支
git branch -d 分支名
2. 删除远程分支
git push origin --delete 分支名
撤销修改
撤销新写的功能或者修改,回到写这个功能之前的状态
1. 删除本地分支
1. 修改后还没add
git checkout -- 【文件名】 (撤销某个文件修改)
git checkout . (撤销这次修改过所有文件的修改)
2. 修改后add了,但还没commit
1. git reset HEAD 【文件名】 (把暂存区修改回退到工作区)
2. git checkout -- 【文件名】 (放弃工作区的修改)
3. 修改后已经add,并且commit了
利用下面讲的版本回退进行撤销
版本回退
对添加到本地仓库(已经commit过)的代码进行撤回
1. 查看历史记录(找到想回退的版本号)
1. 查看提交过的版本信息(详细信息)
git log
2. 查看提交过的版本信息(只查看版本号跟提交说明)
git log --pretty=oneline
3. 查看所有分支的所有操作记录(包括已经被删除的commit记录和reset的操作),例如执行 git reset --hard HEAD~1,退回到上一个版本,用git log则是看不出来被删除的commitid,用git reflog则可以看到被删除的commitid,我们就可以买后悔药,恢复到被删除的那个版本。
git relog
2. 版本回退
1. 回退到上一个版本
git reset --hard HEAD^
2. 回退到指定版本
git reset --hard [版本号]
查看远程仓库地址
git remote -v
某些指令用法
一. git branch相关用法
- 查看分支
git brabch -a/-r
- 创建分支
git brabch 【分支名】
- 删除分支
git brabch -d 【分支名】
- 查看本地分支对应的远程分支
git brabch -vv
- 分支重命名
git brabch -m 【旧分支名】 【新分支名】
二. git checkout相关用法
- 放弃修改
git checkout -- 【文件名】 (撤销某个文件修改)
git checkout . (撤销这次修改过所有文件的修改)
- 切换分支
git checkout 【分支名】
- 查看帮助
退出时使用:wq退出查看状态
git checkout --help
三. git reset相关用法
- 回退到已经commit的某个版本
git reset -- hard【版本】
四. git rebase相关用法
多线变一线(合并两次commit)(用 merge 只需要解决一次冲突即可,简单粗暴,而用 rebase 的时候 ,需要依次解决每次的冲突,才可以提交),
更新代码(另一个版本修改后合并到当前版本)
先commit才能rebase
或先stash在rebase
- 多线变一线(把另一个分支合并到当前分支,合并成一条线)
git rebase 【分支名】
- 如果合并的时候存在冲突,解决冲突后add继续rebase
git add .
git rebase --continue
- 终止rebase,回到rebase前的状态
git rebase --abort
- 如果不想要某次 rebase 的结果
git rebase --skip
- 将本地的多次提交合并为一个,以简化提交历史
git rebase -i 【版本号】
五. git stash相关用法
stash命令可用于临时保存和回复修改,可跨分支。
只对工作区和暂存区的有效,已经commit过的无效
- 保存
git stash [save message]
- 查看所有保存的记录列表
git stash list
- 将当前stash中的内容弹出
git stash pop stash@{num}
- 将堆栈中的内容应用到当前目录,不同于git stash pop,该命令不会将内容从堆栈中删除,也就说该命令能够将堆栈的内容多次应用到工作目录中,适应于多个分支的情况。
git stash pop stash@{num}
- 清除堆栈中的所有 内容
git stash clear
- 查看堆栈中最新保存的stash和当前目录的差异。
git stash show