如何使用github

假设你的邮箱地址是:tom@gmail.com
假设你在gitHub上的用户名是:Tomas。
详细命令参见git官网:https://git-scm.com/

1,在本机生成密钥

如果已经生成并配置,跳过此步骤

ssh-keygen -t RSA -b 4096 -C "tom@gmail.com"

成功的话会在~/下生成.ssh文件夹,id_rsa.pub文件里面的内容就是key,全选并复制
到github上AccountSetting->SSH Keys,点击Add SSH keys,将复制的内容粘贴进去,Title可自定义。

2,在本机建立仓库并提交代码

假设你的本地需要上传的代码是:MyCodeToSubmit

在gitHub上新建一个repositories,名字也叫MyCodeToSubmit
进入本机的MyCodeToSubmit的目录:

touch README.md //新建说明文件
git init //在当前项目目录中生成本地git管理,并建立一个隐藏.git目录
git add . //添加当前目录中的所有文件到索引
git commit -m "first commit" //提交到本地源码库,并附加提交注释
git remote add origin git@github.com:Tomas/MyCodeToSubmit //添加到远程项目,
git push -u origin master //把本地源码库push到github的远程项目中,确认提交

3,在本机更新代码

假设你在gitHub上已经有了一个工程:MyCodeToUpdate

新建一个文件夹用于更新这个代码

git init //在当前项目目录中生成本地git管理,并建立一个隐藏.git目录
git remote add origin git@github.com:Tomas/MyCodeToUpdate //添加到远程项目,别名为originUpdate
git pull origin master

4,切换分支

  1. 创建分支br1,br2

    git branch -b br1

  2. 删除分支br1
    git branch -d br1

  3. 切换到远程分支rebr
    git checkout -b rebr origin/rebr

5,解决冲突常用命令

一般冲突提示为:The following untracked working tree files would be overwritten by checkout

5.1 默认处理流程

修改有冲突的文件内容,再git addgit commit
如果是git pull --rebase带来的冲突,解决完成之后,需要git rebase --continue

5.2 重置 git clean

用于将未track的文件删除,参看原文档:https://git-scm.com/docs/git-clean

1
2
3
4
5
6
7
8
9
10
# 仅展示哪些文件将要删除,
git clean -n
# 直接删除当前仓库没有track的文件,循环遍历子目录,不会删除 .gitignore里指定的忽略的文件
git clean -f
# 直接删除指定路径<path>没有track的文件,不会删除 .gitignore里指定的忽略的文件
git clean -f <path>
#删除当前目录下没有被 track 过的文件和文件夹,不遍历子目录
git clean -df
#删除当前目录下所有没有 track 过的文件, .gitignore里忽略的文件和文件夹也会被删除,一般不用
git clean -xf

一般使用git clean -ngit clean -f

5.3 重置 git reset

用于将已track的改动还原,参看原文档:https://git-scm.com/docs/git-reset

1
2
3
4
5

#回到本地的最近一次commit,并将改动的文件置为没有add的状态
git reset --soft
#回到本地的最近一次commit,并强制还原已改动的内容,这样,你修改的部分将丢失
git reset --hard

6,多个key分渠道的指定

touch ~/.ssh/config
chmod 600 ~/.ssh/config

修改config文件

Host bitbucket.org
     IdentityFile ~/.ssh/huijia
     User git
Host oschina.net
     IdentityFile ~/.ssh/raist_id_rsa
     User git

7,代理

7.1 基于ssh方式

修改Config文件:

1
2
3
Host  github.com
User git
ProxyCommand nc -x 127.0.0.1:7890 -Xconnect %h %p

127.0.0.1:7890换成你的代理ip和端口即可。

7.2 基于http方式

1
2
git config http.proxy http://127.0.0.1:7890
git config https.proxy http://127.0.0.1:7890

取消http代理:

1
2
git config --unset http.proxy
git config --unset https.proxy