Git 常用命令
2017-11-23 本文已影响25人
SkyRiN
初始化一个本地仓库
git init
将文件从工作区添加到暂存区
git add <file>
取消暂存 file
git reset HEAD <file>
生成 rsa 格式 ssh 公私钥
ssh-keygen -t rsa -C "youremail@example.com"
生成 rsa 格式 ssh 公私钥并重命名
ssh-keygen -t rsa -C "youremail@example.com" -f ~/.ssh/custom-name
关联本地仓库到远程仓库 url
git remote add origin url
将文件从暂存区取出并保存到仓库
git commit
将文件从本地仓库推送到远程仓库
git push
-u (--set-upstream): 对于每个最新或成功推送的分支,添加上游(跟踪)引用,用于无参数的 git-pull 和其他命令
查看仓库目前状态
git status
显示文件两个版本之间的差异,输出内容与 git log -p 相同
git diff
显示所有 commit 内容
git log
-- oneline : 一个 commit 显示一行内容为 SHA+TITLE
-- stat : 查看哪些文件被修改以及添加/删除了多少行代码
- p(--patch) : 显示对文件作出的实际更改
- w : git log -p -w 将显示补丁信息,但是不会突出显示仅更改了空格的行
将仅显示一个 commit 内容
git show
合并与衍合
git merge <branch> #合并指定分支到当前分支
git rebase <branch> #衍合指定分支到当前分支
强制覆盖本地内容
git fetch --all
git reset --hard origin/master
git pull origin master
.gitignore 通配规则
.gitignore 文件用来告诉 git 不应跟踪的文件。该文件应该与 .git 目录(默认隐藏)同级。
-
空白行作为空格
-
# : 将行标记为注释
-
* : 与 0 个或多个字符匹配
-
? : 与 1 个字符匹配
-
[abc] : 与 a、b 或 c 匹配
-
** : 与嵌套目录匹配 - a/**/z 与以下项匹配:
a/z
a/b/z
a/b/c/z
其它常见问题
git无法pull仓库refusing to merge unrelated histories
solution: git pull origin master --allow-unrelated-histories
代码体积太大出现fatal: early EOF
、fatal: index-pack failed
等错误
solution: 在*[git installed path]*/etc/gitconfig
(没有可手动创建)文件中添加
[core]
packedGitLimit = 512m
packedGitWindowSize = 512m