5.8 KiB
git 常用命令
git help
Branch related
1. 创建分支
-
根据当前分支创建新分支
git branch newBranchName
-
创建并切换分支
git checkout -b branchName
- 根据其他远程分支创建新分支
git branch newBranchName origin/ohterBranchName
- 根据其他远程分支创建新分支并切换分支
git checkout -b newBranchName origin/otherBranchName
- 重命名分支
git branch -m oldBranchName newBranchName
2. 提交分支
- 提交分支到远程库
git push origin branchName
- 是否提交成功:查看远程端所有分支
git branch -r
- 查看本地分支
git branch
- 查看本地和远程分支
git branch -a
3. 删除分支
- 删除本地未提交分支
git branch -d branchName
- 删除远程分支
git branch -r -d origin/branchName
git push origin :branchName
冒号前有空格
- 批量删除本地分支
git branch -a | grep -v -E 'master|develop' | xargs git branch -D
- 批量删除远程分支
git branch -r| grep -v -E 'master|develop' | sed 's/origin\///g' | xargs -I {} git push origin :{}
如果有些分支无法删除,是因为远程分支的缓存问题,可以使用
git remote prune
- 批量删除本地tag
git tag | xargs -I {} git tag -d {}
- 批量删除远程tag
git tag | xargs -I {} git push origin :refs/tags/{}
Ps:用到命令说明
grep -v -E 排除master 和 develop
-v 排除 -E 使用正则表达式
xargs 将前面的值作为参数传入 git branch -D
后面
-I {} 使用占位符 来构造 后面的命令
强制删除把-d 换成-D
4. 切换分支
git checkout branchName
切换分支时需要将修改过的文件全部提交
5. 合并分支
- 将开发中的分支(branchName)合并到主分支(branchName)
- 首先切换到主分支
git checkout origin/branchName
- 合并
git merge newBranchName
- 将开发中的分支(branchName)合并到主分支(branchName),不保留日志
- 首先切换到主分支
git checkout origin/branchName
- 合并
git rebase newBranchName
- 保存之前的分支历史合并
git merge -no -ff newBranchName
6. 撤销
- 撤销最近一次提交
git reset HEAD^
7. 查看各分支最后一次提交
git branch -v
8. 查看列出详细信息,在每一个名字后面列出其远程url
git remote -v
file related
1. git stash命令
git stash
命令用于将更改储藏在脏工作目录中
git stash list
列索储藏的修改
git stash show
进行检查
git stash apply
恢复
git stash drop stash@{0}
移除存储
2. git clone
git clone <版本库的网址>
将存储库克隆到本地仓库
git clone <版本库的网址> <本地目录名>
指定克隆的目录
3. Git init/git add
git init
初始化一个工作区
git add fieName
添加文件到暂存区
git add .
将文件的修改,文件的新建,添加到暂存区
git add -u
将文件的修改、文件的删除,添加到暂存区
git add -A
将文件的修改,文件的删除,文件的新建,添加到暂存区
远程仓库地址操作
git remote add origin git@github.com:athc/ath_auth.git
将本地仓库和远程仓库连接起来
git remote set-url origin git@github.com:athc/ath-cloud.git
修改远程仓库地址
或分两步先删除
git remote rm origin
先删除远程仓库地址
git remote add origin git@github.com:athc/ath-cloud.git
添加远程仓库地址
4. git commit#git reset#git rm#git mv
git commit -m 'message'
提交添加的文件
git commit -a -m 'message'
相当于git add -A +git commit
git reset将当前HEAD 复位到指定状态,一般用于撤销操作
git reset fileName
或git reset HEAD fileName
回退文件
git reset HEAD^
回退版本,一个**^**表示一个版本,可以多个,另外也可以使用git reset HEAD~n
这种形式
git reset commit-id
回退某一个commit-ID的提交
Git rm命令用于从工作区和索引中删除文件
git rm Documentation/\*.txt
从documentation目录及其任何子目录下的索引中删除所有.txt文件
Git mv命令用于移动或重命名文件,目录或符号链接
git text.txt mydir
把text.txt 移动到mydir目录,这条命令相当于以下执行
$ mv test.txt mydir/
$ git rm test.txt
$ git add mydir
5. git status#git log #git show#git diff
git status
命令用于显示工作目录和暂存区的状态。使用此命令能看到那些修改被暂存到了, 哪些没有, 哪些文件没有被Git tracked到
git status -uno
只列出所有已经被git管理的切被修改但是没提交的文件
git log命令用于显示提交日志信息
git log -3
查看最近三次提交日志
git log
查看提交日志
git log --no-merges
显示提交记录但是跳过合并的
git show
命令用于显示各种类型的对象
git diff
命令用于显示提交和工作树等之间的更改。此命令比较的是工作目录中当前文件和暂存区域快照之间的差异,也就是修改之后还没有暂存起来的变化内容
git checkout -b newBrach origin/master
从远程分支取回到本地分支
如:
git checkout -b dev/1.5.4 origin/dev/1.5.4
从远程dev/1.5.4分支取得到本地分支/dev/1.5.4
5. Git fetch #git pull # git merge
git fetch
命令用于从另一个存储库下载对象和引用
git fetch
可以同步远程分支信息
git pull
命令用于从另一个存储库或本地分支获取并集成(整合),在默认模式下,git pull
是git fetch
后跟git merge FETCH_HEAD
的缩写。
git push origin localBranchName
将本地分支push到远程分支
git pull
命令用于从另一个存储库或本地分支获取并集成(整合)。git pull
命令的作用是:取回远程主机某个分支的更新,再与本地的指定分支合并,它的完整格式稍稍有点复杂