世界上只有一种英雄主义,就是看清生活的真相之后依然热爱生活!

git常用笔记

2019-02-13
343次查阅
2019/6/28

git服务器配置

在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 分支冲突

如果devmaster内容不一样,合并的时候会有以下提示:

$ 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

评论

想说点什么?