$ git branch -d xxxxx 删除本地分支,强制删除就是大写的-D
$ git tag 查看当前分支下的标签
$ git fetch origin tag <tagname> 获取远程tag
$ git fetch -p 这个命令,它在fetch之后删除掉没有与远程分支对应的本地分支
$ git remote show origin 查看fetch下来分支的状态。 tracked 是追踪,代表远程仓库存在 stale 是陈旧,代表远程仓库是没有了的,git remote prune origin 可以将其从本地版本库中去除
想要新建一个分支并同时切换到那个分支上,你可以运行一个带有 -b 参数的 git checkout 命令:
$ git checkout -b iss53 Switched to a new branch "iss53"
它是下面两条命令的简写:
$ git branch iss53 $ git checkout iss53
如果想删除远程的分支呢,左边的分支为空,那么将删除:右边的远程的分支。
$ git push origin :test // 刚提交到远程的test将被删除,但是本地还会保存的,不用担心
$ git push --delete origin kitNew 删除远程分支kitNew:
$ git checkout -b qingniu origin/qingniu 将远程分支origin/qingniu拷贝到qingniu(本地分支),并且本地创建qingniu分支,自动切换过去
将本地分支关wirstban联远程分支origin/f-wris
$ git branch --set-upstream-to=origin/f-wrist wirstban
$ git branch -a 查看本地、远程所有分支
$ git branch -r 查看远程分支
$ git branch 查看本地分支
$ git checkout qingniu 切换到qingniu分支
$ git merge <name> 合并 <name>某分支到当前分支
$ git branch --merged 查看哪些分支已被并入当前分支(译注:也就是说哪些分支是当前分支的直接上游。) 就是可以看到哪些分支合并了当前分支
如果要强制禁用“Fast forward”模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
请注意--no-ff参数,表示禁用“Fast forward”:
$ git merge --no-ff -m "注释" <name>合并的分知名
提示:Merge made by the 'recursive' strategy. 通过“递归”策略合并。
$ git fetch 相当于是从远程获取最新版本到本地,不会自动merge
运行 git fetch,可以将远程分支信息获取到本地,再运行 git checkout -b local-branchname origin/remote_branchname 就可以将远程分支映射到本地命名为local-branchname 的一分支。
git checkout master //进入master分支
git checkout -b frommaster //以master为源创建分支frommaster,并且切换过去
$ git push origin test:master // 提交本地test分支作为远程的master分支
$ git push origin test:test // 提交本地test分支作为远程的test分支
$ git push origin test //将当前分支到远程的test分支
$ git branch test 创建本地test分支
$ git branch -m devel develop 修改本地分支,将本地分支devel改为develop
$ git status
git status命令可以让我们时刻掌握仓库当前的状态,上面的命令告诉我们,BleConst被修改过了,但还没有准备提交的修改。
$ git log
log 命令显示从最近到最远的提交日志
$ git log --pretty=oneline //格式化输出
根据commit id回退到指定的版本(3628164)
$ git reset --hard3628164
HEAD is now at 3628164 append GPL
版本号没必要写全,前几位就可以了,Git会自动去找。
当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout --file
意思就是,把文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
另一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。