在Linux服务器上操作:
创建git用户组: groupadd git useradd -g git git 配置ssh免密登录: su - git mkdir .ssh chmod 700 .ssh touch .ssh/authorized_keys chmod 600 .ssh/authorized_keys 初始化版本库: mkdir -p /data/git-data/test.git chown -R git:git /data/git-data cd /data/git-data/test.git git --bare init
客户端操作:
ssh-keygen -t rsa -C "sk@1987.name" 将生成的公钥复制到git服务器git用户的 .ssh/authorized_keys 文件中,也可以手动复制过去 : ssh git@47.91.221.235 'cat >> .ssh/authorized_keys' < .ssh/id_rsa.pub
git客户端安装配置
下载: wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.20.1.tar.gz 安装依赖库: yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel 编译安装: ./configure --prefix=/usr/local/git && make install ln -s /usr/local/git/bin/* /usr/local/bin/ 配置: git config --global user.name "sunk" # 配置用户名 git config --global user.email "sunk@1987.name" # 配置邮箱 git config --list # 查看配置
git客户端常用操作
mkdir git-test && cd git-test # 新建一个版本库 git init # 初始化版本库 git status # 查看版本库状态 git status -s # 查看版本库状态(缩写模式) git add test.py # 把 test.py 添加到版本库 git add . # 一次性添加所有 git commit -m "create test.py" # 提交改变信息 git commit --amend --no-edit # 不编辑, 直接合并到上一个 commit git commit -am "change info" # 已经 add 之后,以后直接 add 和 commit 合并操作 git log # 查看修改记录 git log --oneline # 一行显示修改记录 git diff # 没有 add 之前查看和上一次 commit 的不同 git diff --cached # 已经 add 之后查看和上一次 commit 的不同 git reset test.py # 回到 add 之前 git reset --hard HEAD # 回到上一次的 commit git reset --hard # 回到指定的 commit id git reflog # 查看所有 reset 记录,可以挽回 reset 之后消失的 commit id git checkout -- test2.py # 单独恢复某个文件到指定 commit id git log --oneline --graph # 查看分支 git branch dev # 新建一个 dev 分支 git branch -vv # 查看当前分支所属 git checkout dev # 切换 HEAD 到 dev 分支 git checkout -b dev # 新建 dev 分支,并且切换分支到 dev git branch -d dev # 删除 dev 分支 git merge --no-ff -m "merge info" dev # 合并 dev 分支 到 master,先要切换分支到 master
远程仓库操作
git remote add origin git@47.91.221.235:/data/git-data/test.git # 关联一个远程库 git remote -v # 列出远程仓库 git remote show origin # 查看远程仓库 git remote rename origin shell # 重命名远程仓库 git remote rm origin # 删除远程库 git push -u origin master # 第一次推送master分支的所有内容 git push origin master # 以后推送使用 git clone git@47.91.221.235:/data/git-data/test.git ./ # 克隆远程仓库 git pull origin mater # 取回远程的更新
merge 分支冲突
如果dev
和master
内容不一样,合并的时候会有以下提示:
$ git merge dev Auto-merging a.py CONFLICT (content): Merge conflict in a.py Automatic merge failed; fix conflicts and then commit the result.
此时需要人工合并两个文件之后再commit
THE END
暂无评论内容