-
配置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 的时候不会推送分支,如果一定要推送标签的话那么可以使用这个命令
网友评论