git学习笔记
January 23, 2017
Tags:note
最近想要做博客的云端编码,在哪都能发日志,于是入了coding.net的坑,从svn转到git下~
以前工作中,因为没有什么使用git的需要,说要学吧,总有各种理由没时间。为了小博客真是操碎了心,看了廖老师的教程,发现其实git跟svn cli还是有很多的相同之处,也没有特别陌生,相信不用多久就能上手了 :)
本文是自己学习和记录用的,如果大家想看教程,还是推荐廖雪峰老师的《Git教程》
关于版本库、工作区和暂存区
- 版本库/Repository:Git版本库,会自动创建分支master,以及指向master的HEAD指针;
- 工作区/Working Directory:你在本地写代码的目录;
- 暂存区/Stage:
- 当你使用
git add
时,是把本地代码提交到暂存区; - 而使用
git commit
时,则把暂存区的代码提交到当前的分支;
- 当你使用
常用命令
git clone [email protected]:YuyingWu/blog.git // 从远程库克隆git status // 查看状态// 文件处理git add <file> // 添加文件到暂存区git rm <file> // 从版本库删除文件git checkout -- <file> // 撤销更改git reset HEAD <file> // 撤销更改git diff HEAD -- <file> // 比较diffgit commit // 把暂存区的所有内容提交到当前分支// 分支管理git branch // 查看分支列表及当前分支,带参数-d代表删除某分支git checkout branch-n // 切换到xx分支,带参数-b代表创建并切换git checkout -b branch-n origin/branch-n // 创建与远程库对应的本地分支git merge branch-n // 合并branch-n的代码到当前分支// 分支推送git push origin master // origin为远程库,master为当前分支// 分支抓取git pull // pull = fetch + merge// 本地分支push到远程仓库git initgit remote add origin [email protected]:YuyingWu/blog.gitgit add .git commit -m "init"git push origin preact:preact// 删除分支git push origin :Branch1 // 删除远程分支 :代表deletegit branch -d branchName // 删除本地分支
Git小贴士
问
:怎么生成SSH key(SSH密钥)?
答
:命令行执行以下代码。Mac系统下,生成的id_rsa.pub和id_rsa在/Users/xxx/.ssh目录。
ssh-keygen -t rsa -C “your email address”
问
:想把一份代码同步到多个git源,咋整?
答
:打开本地工作区的.git/config文件,给remote “origin”多添加几个url即可
问
:RPC failed
答
:默认Git设置http post
的缓存为1MB,改为500MB后成功提交
// Questionerror: RPC failed; HTTP 411 curl 22 The requested URL returned error: 411 Length Requiredfatal: The remote end hung up unexpectedly// Solutiongit config http.postBuffer 524288000
问
:不同的SSH key给不同的站点使用
答
:在.ssh
目录下,添加config
文件,给对应的站点指定读对应的rsa文件
Host github.comHostName github.comUser gitIdentityFile ~/.ssh/github_rsaHost git.coding.netUser [email protected]PreferredAuthentications publickeyIdentityFile ~/.ssh/coding_rsa
评论区