美文网首页
git常用命令

git常用命令

作者: battleMonkey | 来源:发表于2019-03-17 14:20 被阅读0次
  • 配置git提交的用户名,邮箱

  • 全局配置

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
$ git config user.name  'Bob Doe'
$ git config user.email 'bobdoe@example.com'
  • 配置是否输入登陆密码信息

$ git config --global credential.helper cache           # ⼗五分钟有效期
$ git config credential.helper 'cache --timeout==3600'  # ⼀个⼩时有效期
$ git config --global credential.helper store           # ⻓期有效
  • 解决 git log 显示方式问题

core.pager指定 Git 运行诸如log、diff等所使用的分页器,你能设置成用more或者任何你喜欢的分页器(默认用的是less), 当然你也可以什么都不用,设置空字符串:

$ git config --global core.pager ''
  • 修改commit 的 说明信息

git commit --amend -m "xxxxxx"  //修改最近一次commit描述为引号里面内容
git push -f origin master //如果已经push了,可以用这个覆盖服务端信息

  • 创建 git 仓库:

mkdir learn_git
cd learn_git
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/XXXXX/learn_git.git
git push -u origin master
  • 已有仓库?

cd existing_git_repo
git remote add origin https://gitee.com/XXXXX/learn_git.git
git push -u origin master

1.查看<本地分支> 和 <远程分支>的 映射关系
git branch -vv   

* master 4a0e730 [origin/master] new master.txt
2. git pull
2.1 未指定 默认拉取 哪个远程 分支:

导致执行: git pull 报错

root@Dabenstone:~/learn_git# git branch -vv
  dev    42f0e48 [origin/master: 领先 1] dev:v3
  master 4a0e730 [origin/master: 落后 2] new master.txt
  review 4dc120a [origin/dev: 领先 2] review:v3
* test   4dc120a review:v3
root@Dabenstone:~/learn_git# git pull
当前分支没有跟踪信息。
请指定您要合并哪一个分支。
详见 git-pull(1)。

    git pull <远程> <分支>

如果您想要为此分支创建跟踪信息,您可以执行:

    git branch --set-upstream-to=origin/<分支> test

设置<本地分支> [默认拉取] "哪一个" <远程分支>的内容 (git pull 不需要添加别的参数)

$ git branch --set-upstream-to origin/远程分支名  本地分支名(不写的话 默认表示 当前所在分支)
2.2拉取指定远程分支的内容:
git pull origin  <远程分支名>

3. git push
3.1 当前<所在分支名> 和 <设置的默认远程拉取分支名> 不一样:

导致执行:git push报错

fatal: 如果您当前分支的上游分支和您当前分支名不匹配,为推送到远程的
上游分支,使用

  git push origin HEAD:master --> 上传<当前分支>到<远程某个分支>, *没有, 会自动创建该分支*

为推送至远程同名分支,使用

  git push origin dev         --> 如果远程没有,会在远程创建 dev分支(不能是别的名字),并推送

为了永久地选择任一选项,参见 'git help config' 中的 push.default。

git push的一般形式为 :

git push <远程主机名> <本地分支名>  <远程分支名> 
例如 git push origin master:refs/for/master 

即是将本地的master分支推送到远程主机origin上的对应master分支, origin 是远程主机名,第一个master是本地分支名,第二个master是远程分支名。

1.1 git push origin master

如果远程分支被省略,如上则表示将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建

1.2 git push origin :远程分支名

如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支,等同于: git push origin --delete master

$ git push origin :review
remote: Powered By Gitee.com
To https://gitee.com/XXXXX/learn_git.git
 - [deleted]         review
1.3 git push origin

如果当前分支与远程分支存在追踪关系,则本地分支和远程分支都可以省略,将当前分支推送到origin主机的对应分支

1.4 git push
  • 如果当前分支<只有一个远程分支>,那么主机名都可以省略,形如 git push,可以使用git branch -r ,查看远程的分支名
11.5 git push 的其他命令

这几个常见的用法已足以满足我们日常开发的使用了,还有几个扩展的用法,如下:

  • git push -u origin master 如果当前分支与多个主机存在追踪关系,则可以使用 -u 参数指定一个默认主机,这样后面就可以不加任何参数使用git push,

  • 不带任何参数的git push,默认只推送当前分支,这叫做simple方式,还有一种matching方式,会推送所有有对应的远程分支的本地分支, Git 2.0之前默认使用matching,现在改为simple方式
    如果想更改设置,可以使用git config命令。git config --global push.default matching OR git config --global push.default simple;可以使用git config -l 查看配置。

  • git push --all origin 当遇到这种情况就是不管是否存在对应的远程分支,将本地的所有分支都推送到远程主机,这时需要 -all 选项

  • git push --force origin git push的时候需要本地先git pull更新到跟服务器版本一致,如果本地版本库比远程服务器上的低,那么一般会提示你git pull更新,如果一定要提交,那么可以使用这个命令。

  • git push origin --tags //git push 的时候不会推送分支,如果一定要推送标签的话那么可以使用这个命令

相关文章

网友评论

      本文标题:git常用命令

      本文链接:https://www.haomeiwen.com/subject/imkumqtx.html