git常用笔记

2019-02-13 91次浏览 发表评论

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 # 查看配置

常用操作

$ 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 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

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

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 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 # 取回远程的更新

评论

随便说点,聊聊天~