git branch 和 git checkout经常在一起使用,所以在此将它们合在一起
1.Git branch
一般用于分支的操作,比如创建分支,查看分支等等,
1.1 git branch
不带参数:列出本地已经存在的分支,并且在当前分支的前面用"*"标记
1.2 git branch -r
查看远程版本库分支列表
1.3 git branch -a
查看所有分支列表,包括本地和远程
1.4 git branch dev
创建名为dev的分支,创建分支时需要是最新的环境,创建分支但依然停留在当前分支
1.5 git branch -d dev
删除dev分支,如果在分支中有一些未merge的提交,那么会删除分支失败,此时可以使用 git branch -D dev:强制删除dev分支
1.6 git branch -vv
可以查看本地分支对应的远程分支
例:
$ git branch -vv
* develop c23f1eb [origin/develop] test
master d540b99 [origin/master] test
1.7 git branch -m oldName newName
给分支重命名
2. Git checkout
1. 操作文件 2. 操作分支
2.1 操作文件
2.1.1 git checkout filename 放弃单个文件的修改
一种是file自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是file已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
2.1.2.1 git checkout . 放弃该目录下的所有修改(未使用 git add 缓存代码时)
2.1.2.2 git reset HEAD . 放弃该目录下的所有修改(已经使用了 git add 缓存了代码),在操作git checkout .
2.1.2.3 git reset --hard HEAD^ 放弃该目录下的所有修改,回退到上一次commit的状态(已经用 git commit 提交了 代码)。或者用git reset --hard commitid 回退到任意版本
2.2 操作分支
2.2.1 git checkout master 将分支切换到master
2.2.2 git checkout -b master 如果master分支存在则只切换分支,若不存在则创建并切换到master分支。
2.3 查看帮助
git checkout --help
3. 提交代码
3.1 git status 查看工作区代码相对于暂存区的差别(即本地代码修改情况)
3.2 git add . 将当前目录下修改的所有代码从工作区添加到暂存区 . 代表当前目录
3.3 git commit -m “备注” 将暂存区内容提交到当前分支
3.4 git push origin develop:develop 将本地develop分支的版本库推送到远程服务器develop分支上 (origin是远程主机,develop:develop=本地分支名:远程分支名)
Git的工作区、暂存区和版本库之间的区别和联系
https://www.cnblogs.com/zhangyinhua/p/8099185.html
4. Git clone
4.1 git clone -b 分支名 <版本库的网址> 克隆远程代码库中某个项目的某分支的代码到本地
git clone <版本库的网址> 克隆远程代码库中某个项目的master分支的代码到本地
5. 版本回退
5.1 git log 查看提交commit历史,以便确定要回退到哪个版本
5.2 git reset commit_id 版本回退到该commit_id提交的版本,不删除本地修改的代码
git reset --mixed:此为默认方式,不带任何参数的git reset,即这种方式,它回退到某个版本,只保留源码,回 退commit和index信息
git reset --soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接 commit即可
git reset --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容(恢复本地修改的代码需要借助git reflog找到想回退的commit_id)
5.3 git reflog 查看命令历史(reflog会记录所有HEAD的历史,也就是说当你做 reset,checkout等操作的时候,都会被记录在reflog中)
6. 撤销修改
6.1 commit撤销
git reset HEAD~ 或者 git reset HEAD~1 撤销上一次的commit
(修改HEAD~之后的数字,如撤销前3次的commit。git reset HEAD~3)
6.2 文件撤销
6.2.1.git reset HEAD <file> 指的是从库里恢复暂存区某一个文件,如果不写 <file>
的话,就是把文件恢复到和最新 的库一样的状态(参考6.1)。
6.2.2. 参考2.1.1
7. 删除文件
7.1 git rm file 当我们需要删除暂存区或分支上的文件, 同时工作区也不需要这个文件了, 可以使用git rm
git rm file = rm file+ git add file
rm file删除本地文件
git add file 提交删除的步骤同步到git仓库
git rm file后在git commit就从版本库中删除了
7.2 git rm --cached file 当我们需要删除暂存区或分支上的文件, 但本地又需要使用, 只是不希望这个文件被版本控制, 可以使用 git rm --cached
git rm --cached 会从index里面删除该文件,下次commit的时候会修改git仓库,但是本地的文件还是保留
参考链接: