通过学习Git使用教程(一)
, Git使用教程(二)
,你已经对git的基本使用有了一定的了解,这篇文章主要介绍git使用中经常遇到的一些问题
##使用 git remote add origin git@github.com:xxx/xxx.git
命令关联本地和远程仓库的时候报没有权限错,如下所示
1 |
|
原因是由于你在本地(或者服务器上)没有生成ssh key, 解决办法如下: 查看本地是否有ssh key,查看方法如下:
1 |
|
第一步,git config --global --list
,检验本地是否已经配置git的用户名和邮箱,有直接进行第三步
第二步,git config –global user.name “yourname”,git config –global user.email myemail@qq.com 设置全局用户名和邮箱,
第三步,ssh-keygen -t rsa -C “这里换上你的邮箱”,生成秘钥,
第四步,到git仓库,添加秘钥,打开id_rsa.pub,复制里面的内容,打开你的githuh主页,setting,添加ssh key
第五部,ssh -T git@github.com 测试一下通不通,不通就是ssh-agent -s ssh-add ~/.ssh/id_rsa 操作这两步.
使用 git pull
无法拉取服务器资源
错误详情如下:
1 |
|
解决方法一: 想保留刚才本地修改的代码,并把git服务器上的代码pull到本地
1 |
|
如此一来,服务器上的代码更新到了本地,而且你本地修改的代码也没有被覆盖,之后使用add,commit,push 命令即可更新本地代码到服务器了。
解决方法二: 不需要保存本地修改的代码
1 |
|
##git status发现有文件没有被追踪
Untracked files:
(use “git add
1 |
|
解决办法: 使用git add ../Resource 将文件添加的到追踪即可
附录一:
常用git命令
命令 | 描述 | 注意事项 | |
---|---|---|---|
open . | 单开当前目录所在的finder | ||
pwd | 命令用于显示当前目录 | ||
ls -ah | 查看当前目录下的隐藏文件 | ||
git log –graph | 打印提交日志,可以查看分支图 | ||
git add fileName | 添加文件名为fileName的文件到暂存 | ||
git add . | 添加所有的文件到暂存 | ||
git commit -m”des” | 把暂存区的文件提交到本地分支, des为本次提交的描述 | ||
git push origin master | 将本地文件提交的远程仓库的master分支,一般master分支为主分支 | ||
git log | 显示从最近到最远的提交日志 | ||
git reflog | 显示之前每一次的操作命令 | ||
git log –pretty=oneline | 单行输出提交日志 | commit_id显示完全 | |
git log –oneline | 单行输出提交日志 | commit_id只显示前7位 | |
git log –graph –pretty=oneline –abbrev-commit | 打印提交历史信息,带分支信息 | ||
git reset –hard HEAD^ | 回退到上一个版本, head为当前版本, head^为上一个版本, head^^为上两个版本, 同理 | ||
git reset –hard commit_id | 和上面的命令功能一样, 指是回退到commit_id的版本, commit_id可以不用写全 | ||
git reflog | 用来记录你的每一次命令 | ||
git status | 常看当前工作区的状态 | ||
git diff HEAD – fileName | 查看文件在工作区和版本库里面最新版本的区别 | ||
git checkout – file | 丢弃文件名为file在工作区的修改 | ||
git reset HEAD |
可以把暂存区的修改撤销掉,重新放回工作区 | 例如使用git add file 将工作区的文件添加到暂存区时候想要使用git checkout file来撤销修改是无法生效的,你要先使用git reset head file来把在暂存区的修改撤销,重新放回工作区后git checkout file才能生效 |
|
git rm | 用于删除一个文件 | ||
git remote add origin git@github.com:michaelliao/learngit.git | 把一个已有的本地仓库与之远程仓库关联 | ||
git push -u origin master | 关联本地和远程仓库后第一次将本地提交到远程仓库 | 由于远程库是空的,我们第一次推送master分支时,加上了-u参数,其他时候可以不加 | |
git clone git@github.com:michaelliao/gitskills.git | 从远程仓库克隆一个本地仓库 | ||
git checkout -b dev | 创建一个名为dev的分支,等效于下面两条命令 | ||
git branch dev | 创建名为dev的分支 | ||
git checkout dev | 切换到dev分支 | ||
git branch | 查看所有的分支 | ||
git merge dev | 合并分支 | 合并分支要先切换到主分支 | |
git branch -d dev | 删除分支 | 需要先合并之后才能删除, 如果要强行删除使用下面这条命令 | |
git branch –set-upstream-to=origin/dev dev | 将本地dev分支和远程的dev分支关联 | ||
git branch -D dev | 强行删除分支 | ||
git merge –no-ff -m “merge with no-ff” dev | 合并dev分支 | 合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并 | |
git stash | 把当前工作现场“储藏”起来,等以后恢复现场后继续工作 | ||
git stash list | 查看储藏起来的工作区 | ||
git stash apply stash_id | 恢复储藏的工作区 | 此命令恢复后,stash内容并不删除,你需要用git stash drop来删除 | |
git stash pop | 恢复储藏的工作区,同时删除储藏的工作区 | ||
git remote | 查看远程仓库信息 | ||
git remote -v | 查看远程仓库详情 | ||
git pull | 将远程仓库同步到本地 | ||
git pull origin dev | 将远程仓库中dev分支同步到本地 | ||
git checkout -b branch-name origin/branch-name | 在本地创建和远程分支对应的分支 | 本地和远程分支的名称最好一致 | |
git branch –set-upstream branch-name origin/branch-name | 建立本地分支和远程分支的关联 | ||
git rebase | rebase操作可以把本地未push的分叉提交历史整理成直线 | ||
git tag v1.0 | 创建一个名为v1.0的标签 | ||
git tag v0.9 commit_id | 在对应的commit_id处打上v0.9的标签 | ||
git tag | 查看所有的tag | ||
git show v0.9 | 查看v0.9这个标签的详情 | ||
git tag -a v0.1 -m “version 0.1 released” commit_id | 在对应的commit_id处创建带有说明的标签 | ||
git tag -d v0.1 | 删除标签v0.1 | ||
git push origin v1.0 | 推送v0.1到远程版本库 | ||
git push origin –tags | 一次性推送所有未提交的tags到远程仓库 | ||
git push origin :refs/tags/v0.9 | 删除远程仓库的某个标签 | 注意先从本地删除:git tag -d v0.9 |
附录二:
The following is a list of optional inline markups supported:
Option name | Markup | Result if enabled |
---|---|---|
Intra-word emphasis | So A*maz*ing | So Amazing |
Strikethrough | ~~Much wow~~ | |
Underline [^under] | _So doge_ | So doge |
Quote [^quote] | "Such editor" | Such editor |
Highlight | ==So good== | So good |
Superscript | hoge\^(fuga) | hogefuga |
Autolink | http://t.co | http://t.co |
Footnotes | [\^4] and [\^4]: | [^4] and footnote 4 |