使用git管理项目

关于版本控制

版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。

采用版本控制系统(VCS)后,你可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态。你可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致怪异问题出现的原因,又是谁在何时报告了某个功能缺陷等等。

git并非专门给程序员管理代码用,也并非多人协作场景才需要用git。哪怕你自己写写日记,git都能带来巨大的帮助。

开始

假设你的远程仓库在自己的云服务器上。远程仓库推荐使用git用户ssh连接,不过要禁掉git用户的ssh登录。借助一个名为 git-shell 的受限 shell 工具,你可以方便地将用户 git 的活动限制在与 Git 相关的范围内。

vi /etc/passwd
#找到形如下面的行:
git:x:1002:1002::/home/git:/bin/bash
#修改成:
git:x:1002:1002::/home/git:/usr/bin/git-shell

1. step1 远程仓库初始化

在远程服务器上初始化一个裸仓库。

git init --bare test.git

或者从本地仓库初始化一个裸仓库,然后通过scp等copy到远程

git clone my_proj --bare my_proj.git

2. 推送本地项目

#进入本地目录
git init
git remote add origin ssh://git@{ip or domain}:{port}/{you git dir}
(删除:git remote remove origin)

git add .
git commit -m '{commit msg}'
#设置跟踪远程分支,以后直接git push、git pull即可
git push --set-upstream origin master

附:

#查看远程仓库url
git remote -v
#查看详细
git remote show {remote repository, e.g. origin} 


使用密钥(非必须)

每次push、pull都输入密码是难以忍受的,so我们需要使用密钥,一劳永逸。
自己生产密钥对(参考)。或者使用~/.ssh目录里已有的id_rsa,id_rsa.pub。

  • 把公钥放到服务器git用户.ssh目录下,then:
cat id_rsa.pub >> authenrized_keys
  • 如果你的私钥名就是默认的id_rsa,那么已经完成了。否则,修改~/.ssh/config文件(没有就新建),以更改ssh时使用的密钥文件。下面的host名必须和你的git连接的host一致,要么是ip,要么是域名。
Host xxxx
HostName xxxx
Port {port}
User {user}
IdentityFile ~/.ssh/{your key file}

你可能感兴趣的:(使用git管理项目)