git 命令

写完代码后,我们一般这样

git add .  // 添加所有文件

git commit -m "本功能全部完成"

撤回commit

工作区有修改想回去和仓库一样的状态

git checkout -- <file> # 使用 git restore <file> 的效果一样

执行完commit后,想撤回commit,怎么办?

这样凉拌:

git reset --soft HEAD^

这样就成功的撤销了你的commit

注意,仅仅是撤回commit操作,您写的代码仍然保留。

说一下个人理解:

HEAD^的意思是上一个版本,也可以写成HEAD~1

如果你进行了2次commit,想都撤回,可以使用HEAD~2

至于这几个参数:

--mixed

意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数, git reset --mixed HEAD^git reset HEAD^ 效果是一样的。

--soft

不删除工作空间改动代码,撤销commit,不撤销git add . 

--hard

删除工作空间改动代码,撤销commit,撤销git add . 

注意完成这个操作后,就恢复到了上一次的commit状态。

顺便说一下,如果commit注释写错了,只是想改一下注释,只需要:

git commit --amend

此时会进入默认vim编辑器,修改注释完毕后保存就好了。

存储代码

git stash

git stash save ‘说明信息

git stash list

git stash pop [stash]

git stash drop [stash]

git stash clear  

git show stash@{n}

 

git 分支

1.创建分支

git branch develop

 2.查看本地分支:

git branch

3.查看远程分支:

加上-a参数可以查看远程分支,远程分支会用红色表示出来(如果你开了颜色支持的话)

git branch -a

注:名称前面加* 号的是当前的分支

4.切换分支

git checkout branch_name

5.删除本地分支

git branch -d branch_name

6.删除远程分支

git branch -r -d origin/branch-name  
git push origin :branch-name

7.如果远程新建了一个分支,本地没有该分支。

可以利用 git checkout --track origin/branch_name ,这时本地会新建一个分支名叫 branch_name ,会自动跟踪远程的同名分支 branch_name

git checkout --track origin/branch_name

8.如果本地新建了一个分支 branch_name,但是在远程没有。

这时候 pushpull 指令就无法确定该跟踪谁,一般来说我们都会使其跟踪远程同名分支,所以可以利用 git push --set-upstream origin branch_name ,这样就可以自动在远程创建一个 branch_name 分支,然后本地分支会 track 该分支。后面再对该分支使用 pushpull 就自动同步。

git push --set-upstream origin branch_name

 9.合并分支到master上

首先切换到master分支上

git  checkout master

如果是多人开发的话 需要把远程master上的代码pull下来

git pull origin master

然后我们把dev分支的代码合并到master上

git  merge dev

然后查看状态

git status

远程新建分支后,本地查看不到

git remote        # 列出所有远程主机
git remote update origin --prune   # 更新远程主机origin 整理分支
git branch -r      # 列出远程分支
git branch -vv     # 查看本地分支和远程分支对应关系
git checkout -b gpf origin/gpf    # 新建本地分支gpf与远程gpf分支相关联