Git常规语法

常规操作,记录以备忘。

初始化一个仓库并上传到 github 上

1) git init
初始化本地仓库

2) git add .
添加全部已经修改的文件,准备commit 提交

3) git commit -m "first commit"
将修改后的文件提交到本地仓库

4) git remote add origin 远程仓库地址
如:git remote add origin git@github.com:chamwen/JPDA.git
注意:不要用 https 格式的链接,否则会出现验证的问题

5)git push -u origin master
并将本地代码通过这个 upStream 推送到别名为 origin 的仓库中的 master 分支上

特殊情况:当 repo 容量大于 50M时

可能会出现 Error:RPC failed; curl 56 OpenSSL SSL_read... 错误,首先将 .git/config 文件中的 [remote "origin"] 配置为非https的格式 url = git@github.com:chamwen/JPDA.git,然后是配置缓冲大小和关闭 SSL 验证。

1
2
git config http.postBuffer 524288000
git config http.sslVerify false

若 push 网速很慢(几k每秒),可能会出现 fatal: sha1 file '' write error: Broken pipe,换个时间再 push。

后续修改和更新

1)git add .
添加全部修改的代码,准备提交

2)git commit -m "commit message"
将修改后的代码先提交到本地仓库

3) git pull
多人协作时,先 pull ,将 github 的代码拉取到本地

4) git push
本地仓库 upload 到 github

清空 git 历史

1). Checkout
git checkout --orphan latest_branch

2). Add all the files
git add -A

3). Commit the changes
git commit -am "first commit"

4). Delete the branch
git branch -D master

5). Rename the current branch to master
git branch -m master

6). Finally, force update your repository
git push -f origin master

常见问题

ssh: connect to host github.com port 22: Connection timed out

1)网络不稳定,过一段时间再提交,或者多试几次;2)删除 .deploy_git 文件夹、仓库,再 hexo d

warning: LF will be replaced by CRLF

git bash 输入 git config core.autocrlf true

一个设备两个github账户共存
  1. 输入命令,为每个用户产生一个key,注意文件名不同
    ssh-keygen -t rsa -f ~/.ssh/id_rsa_cham -C "xxx1@gmail.com"
    ssh-keygen -t rsa -f ~/.ssh/id_rsa_wen -C "xxx2@163.com"

  2. 修改配置文件,格式

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #不需要针对每个仓库单独配置账户名和邮箱
    # default: chamwen
    Host github.com
    HostName github.com
    User chamwen
    IdentityFile ~/.ssh/id_rsa_cham

    # another: wenz95
    Host wen.github.com # 注意这里需要不一样
    HostName github.com
    User wenz95
    IdentityFile ~/.ssh/id_rsa_wen
  3. 测试
    ssh -T git@github.com
    ssh -T git@wen.github.com

  4. push到github

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # 针对默认的账户:chamwen
    git init
    git add README.md
    git commit -m "first commit"
    git remote add origin git@github.com:chamwen/test.git
    git push -u origin master

    # 针对新的账户:wenz95
    git init
    git add README.md
    git commit -m "first commit"
    git remote add origin git@wen.github.com:wenz95/test.git # 区别在这里,其他一样
    git push -u origin master