这里记录了 Git 的操作方法和建立 Git 服务的方法。
git 常用命令解释 1 git remote add origin git@github.com:username/repo.git
origin
是远程库的名字,origin
是 git 默认的名称,一般不建议修改。
1 git push -u origin master
向远程的仓库中 push 本地代码,要 push 的本地分支为 master,-u
是把本地分支和远程分支关联起来,只需要在第一次 push 的时候使用,后续可以直接 git push origin master
1 2 3 4 5 6 git branch git branch <name> git checkout <name> git checkout -b <name> git merge <name> git branch -d <name>
把本地的 src_branch 推送到远程的 dst_branch
1 2 git push <remote> src_branch:dst_branch git push origin local :nnvm
综述
在使用 git 的时候,使用 ssh 协议的 git 用户来 clone 代码,这样做的好处是,可以把 key 加入到授权,不需要每次都输入密码。
github 使用 key 进行授权的方法见下面对应小节。
建立 Git 服务 参考官方文档
创建 git 用户 (经实验证明必须是 git 用户), 并且创建相应的授权文件
1 2 3 4 5 sudo adduser git su git cd mkdir .ssh && chmod 700 .sshtouch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
把需要授权的用户的公钥拷贝到 authorized_keys
中进行授权,该步骤保证被授权的用户可以 pull 和 push 代码
创建项目
1 2 3 4 5 cd /opt/gitmkdir project.gitcd project.git$ git init --bare Initialized empty Git repository in /opt/git/project.git/
客户端操作 现在可以在另外一台机器上,进行正常的 git 操作了
Github 使用 key 登陆方法
首先要保证 clone 的代码是使用的 ssh 协议的 git clone 下来的。换句话所,必须保证使用 ssh 协议进行代码传输的。如果不是,修改相应的 .git/config 文件,例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote "origin"] # 修改下面这一行为现在的样式 url = git@github.com:shuokay/shuokay.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master [user] email = shuokay@gmail.com name = Yushu Gao
把公钥加入到 github.com 中去
在 .ssh/config
中指定 github.com 使用的私钥文件,例如:
1 2 3 4 Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa_shuokay.at.gmail.com
指定 remote 的地址 Push an exist repository
1 2 3 git remote add origin ssh://git@github.com/shuokay/shuokay.git git push -u origin master
在同一台终端使用不同的 key 修改配置文件 .ssh/config
1 2 3 4 5 Host hostname HostName 8.8.8.8 User git IdentityFile ~/.ssh/id_rsa_shuokay.at.gmail.com IdentitiesOnly yes
key 的管理 生成 ssh key 方法 1 2 3 ssh-keygen -t rsa -b 4096 -C "your_email@example.com" Generating public/private rsa key pair.
把 key 加入到 ssh-agent 1 2 3 4 eval "$(ssh-agent -s) " ssh-add ~/.ssh/id_rsa
常用命令 停止跟踪某个文件
设置代理 命令行设置 http 和 https 代理
1 2 git config http.proxy socks5://127.0.0.1:1086 git config https.proxy socks5://127.0.0.1:1086
配置文件设置 ssh 的代理
1 2 3 4 5 # github Host github.com HostName github.com User git ProxyCommand nc -X 5 -x 127.0.0.1:1086 %h %p # 设置代理