1. 简易的命令行入门教程:
Git 全局设置:
git config --global user.name "XXX" // 全局设置用户名
git config --global user.email "XXXXXXXXXXXXXXXXXXX" // 全局设置邮箱
创建 git 仓库:
cd XXX(项目路径) // 进入到项目路径下
git init // 初始化仓库,若已有仓库怎么不用进行这步操作
git add . // 将所有文件加入暂存区
git status // 查看工作目录和暂存区的状态
git commit -m "XXX"(备注) // 为要上传的文件写备注
git remote add origin XXXXXXXXXXXXXXX(此处写仓库地址) // 连接远程仓库
git push -u origin master // 推送到远程库
2. 更换远程仓库地址,详见 git通过命令更换远程仓库地址-----和更换地址后对项目进行操作显示无权限问题(青蛙与大鹅的博文)
git remote -v // 查看远程仓库地址
3. 查看当前分支并进行切换( 有关 git 本地分支和远程分支如何关联,可参考:git本地分支和远程分支如何关联)
(1)有关分支操作的一些基本命令
git branch // 查看本地的所有分支
git branch -r // 查看远程的所有分支
git branch -a // 查看本地和远程的所有分支
git branch xxx(本地分支名) // 新建分支
git checkout xxx(本地分支名) // 切换到某一分支
git branch -m xxx(本地原分支名) yyy(更改后的分支名) // 重命名本地分支
// 重命名远程分支:先删除远程分支,然后重命名本地分支,再重新提交一个远程分支
git branch -d xxx(本地分支名) // 删除本地某分支
git push origin --delete xxx(远程分支名) // 删除远程分支【慎用】
git branch -vv // 查看所有本地分支所关联的远程分支
git branch --set-upstream-to=origin/xxx(要关联的远程分支) // 本地分支关联远程分支
git checkout -b xxx(本地分支名) origin/xxx(远程分支名) // 新建分支并关联到指定远程分支
(2)git 中的一些简写字母的含义
-d -> delete(删除)
-D -> delete --force的快捷键
-f -> force(强制)
-m -> move(移动或重命名)
-M -> move --force的快捷键
-r -> remote(远程)
-a -> all(所有)
4. 本地和远程仓库的代码文件不同步时(如远程仓库有本地仓库没有的文件),本地使用 push 推送时会报错
eg:没有 README.md 文件时会报以下错误*
解决方法:
1、先使用pull命令:
git pull --rebase origin master // 下面第五六点中有解释该命令
2、再使用push命令:
git push -u origin master
详见 Git错误提示Integrate the remote changes…的解决方法(元宝支付的博文)
5.git pull 与 git fetch (进阶)
(1)首先可以了解一下git的基本架构,可参考 关于git的理解,git结构图解(mozes1的博文)
(2)两者的区别与联系:
- git fetch 仅仅是将远程主机的最新内容拉到本地,不做分支的合并,用户可在检查了以后再决定是否合并到工作本机分支中。
- git pull 是将远程主机的最新内容拉下来后直接合并 。
- 可简单理解为:git pull = git fetch + git merge,但直接执行 git pull 这样可能会产生冲突,因此不建议这样做。
(3)git fetch 的用法:
git fetch origin master // 将远程仓库的 master 分支拉到本地
git merge origin/master // 进行合并
(4)git pull
git pull origin master // 从远程获取最新版本到本地并merge
6. git pull origin master与git pull --rebase origin master(第四点中用到的命令)的区别 (进阶)
git pull=git fetch + git merge
git pull --rebase=git fetch+git rebase
详见 ellennxx的博文
注意:本文章旨在对 git 中常用的命令与常见的错误进行合集,而不用多方搜索,可方便读者操作。