git在使用中有些让人疑惑的地方,对于初学者可能觉得很复杂。尤其在服务器搭建的时候,很容易出错。
一是与服务器之间的ssh无密连接,网络上搜索到的很多都是使用scp命令,但ssh-copy-id命令更好一些,它会直接添加到受信任的密钥里。具体使用方法是:
ssh-copy-id username@remote-server
二是root用户和git用户之间的关系,ssh对git和root用户的区别并不是很大,两者都可以建立连接,唯一要注意的就是git用户要获取.ssh文件夹的权限。例如:
mkdir .ssh && chmod 700 .ssh
touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
三是建立连接之后,在部署服务器时,可能要使用git hooks中的post-receive。它和post-update的区别在于,后者会更新每一个分支。在post-receive中,会遇到unset GIT-DIR的命令,这是暂时屏蔽GIT的目录环境变量。还有git stash是暂存的意思,跟git add和git commit的意思不一致,它是用来暂时保存未完成的工作的。
git hooks实际上就是一些sh脚本,在每次触发条件时进行执行。而pwd
也就是git hooks或者其他正在执行的sh的目录。