1、git stash命令总结
git stash:命令会把所有未提交的修改保存到git堆栈(包括git add和未add的)。
git stash save "test-cmd-stash":作用同上,但可以给stash添加注释信息。
git stash --keep-inde:只会把未git add的保存到git堆栈。
git stash pop:弹出保存到堆栈的工作目录。该命令会将堆栈中第一个stash删除。
git stash apply:恢复保存到堆栈的工作目录。该命令可以多次将stash应用到工作目录,但不删除stash。
git stash lish:查看当前stash。
git stash show:查看堆栈中stash和当前目录差异。
git stash clear:删除所有缓存的stash。
2、git hard和soft
执行git commit之后想撤回,用如下命令:
git reset --soft HEAD^ --HEAD^也可写为HEAD~1
soft:不删除工作空间改动代码,撤销commit,不撤销git add .
hard:删除工作空间改动代码,撤销commit,撤销git add .(慎用,改过的代码会丢失)。
3、git fetch命令
git fetch用于将远程分支的最新内容拉取到本地,但不合并。
git pull则是将远程分支的最新内容拉取到本地,并直接合并。它实际是git fetch + git merge两个操作。
git fetch两种用法:
git fetch
git fetch origin develop --develop为要fetch的分支名
fetch之后需要用
git merge FETCH_HEAD
命令将拉取的内容合并到当前分支
如果有冲突,合并会失败。
注:git fetch取回远程更新后,会返回一个FETCH_HEAD,指的是某个branch在服务器上的最新状态,我们可以在本地通过它查看刚取回的更新信息:git log -p FETCH_HEAD
4、git撤回代码命令
(1) git add添加无用文件并commit之后若想删除,可用git rm删除。(慎用,有可能把源文件也删掉了)
(2)git add了错误文件,还未commit,用如下命令撤回
git reset HEAD --撤销上次add的所有内容
git reset HEAD XX/xx --撤销上次add的某个文件
(3)如果git commit写错,但还未push,可用如下方法修改
git commit --amend
如果已经push,提交用push -f,会覆盖服务器端的提交,可能需要权限,慎用。
注:windows上git工具提交(commit)后用git reset HEAD 命令不能撤回commit,可用git reset --soft HEAD^解决。
git reset --soft HEAD^ --撤回commit,保留修改的代码
git reset --hard HEAD^ --撤回commit,清空工作目录(改过的代码会丢失,适用于要放弃本地所有的更改的情况)
4、git切换代码分支命令
git checkout -b branchname用法:
两种用法,一种是切换分支;
一种是创建分支,创建分支时等同于git branch branchname和git checkout branchname两个命令的合写。(将创建的新分支用git push origin branchname命令推到远程仓,远程仓可能会多出一个branchname分支?)
5、git提交代码命令
(1)删除了文件,用git add -u 添加,提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)。
另外, git add . 可以 提交新文件(new)和被修改(modified)文件,但不包括被删除(deleted)文件。
(2)删除无用的untracked files文件:git clean -f
暂存Changes not staged for commit文件:git stash
untracked的文件应该就是新添加的,但未commit的文件。
(3)git add -A 与-u的区别
git add -u:将文件的修改、文件的删除,添加到暂存区(后面可加文件路径)。
git add .: 将文件的修改,文件的新建,添加到暂存区。
git add -A:将文件的修改,文件的新建,文件的删除,添加到暂存区。
6、git查看所有的分支
git show-ref
git remote -v
使用git remote -v命令可以查看本地设置好的所有远程仓库地址:
learn-vue git:(master) git remote -v
origin https://github.com/qyf404/learn-vue.git (fetch)
origin https://github.com/qyf404/learn-vue.git (push)
其中fetch表示从远程拉代码的地址. push表示向远程推代码的地址。
7、git add远程分支提交代码
个人仓基于master分支新建了新分支master_temp,git clone到本地后,该分支代码可能与战队仓代码存在差异,可用如下方法同步:
git remote add origin_t ssh://git@szv-y.codehub.xxxxx/xxx.git -- 添加名为origin_t的远程仓名,远程仓的地址就是战队仓的地址。
git pull origin_t master -- 同步远程仓代码master分支代码
修改后
git push origin master_temp -- 将修改推到个人仓新建分支。然后在同步到战队仓
8、git查看提交日志
git log --oneline
用于把提交信息用一行显示出来。
9、git回退代码为修改前
git log 查找要回退到的版本号;
git reset --hard commitid --commitid 为要回退到的commit号
git push -f -u origin xxx