@Great-Chinese
2017-02-13T13:55:26.000000Z
字数 3019
阅读 859
分布式代码管理系统Git
# 安装git
yum install -y epel-release
yum install -y git
# 安装完成后,设置用户名与邮箱
git config --global user.name "melody"
git config --global user.email "melody@melody0113.com"
ls -la # 查看文件
cat .gitconfig # 查看.gitconfig文件
mkdir /home/gitroot # 创建存储版本仓库的目录
cd /home/gitroot
git init # 用这个命令初始化,让这个目录变成git的管理仓库
Initialized empty Git repository in /home/gitroot/.git/
ls /home/gitroot/.git/ # 自动生成一些文件
vim 1.txt # 创建一个文件
git add 1.txt # 先添加文件
git commit -m "add new 1.txt" # 再提交到版本仓库
# 查看文件状态
git status
# 恢复修改的文件
git checkout -- 1.txt
# 比较两个文件的不同
git diff
git log # 查看所有提交git仓库的记录操作
git log --pretty=oneline # 一行显示,更清楚
git reset --hard 5be7 # 回退到某一个版本
git reflog # 显示所有的版本
版本回退是文件恢复的一个操作项目
# 恢复到上一次提交的状态
git checkout 1.txt
# 如果修改1.txt文件,保存后,git add 1.txt了,没有commit.再想回到上一次提交的状态,可以使用
git reset HEAD 1.txt
# 然后再
git checkout 1.txt
cp 1.txt 2.txt
# 首先本地删除
rm -f 1.txt # 本地删除1.txt文件
git checkout 1.txt # 本地恢复1.txt文件
# 然后再git仓库彻底删除
git rm 1.txt # git仓库里删除1.txt文件
git commit -m "delete 1.txt" # 提交后,就彻底删除了1.txt文件
# 首先在网址注册一个账号,创建自己的git,点repositories再点new
https://github.com/
# 自定义名字,比如叫studygit,
studygit --> public --> creat repository
# 添加key
settings --> SSH and GPG --> 把linux机器上的/root/.ssh/id_rsa.pub到这里 --> 保存即可
# 如何查看/root/.ssh/id_rsa.pub的公钥
ssh-keygen
# 把本地仓库推送到远程仓库
/ mkdir studygit --> cd studygit --> git init # 首先在本地仓库创建一个名字与远程仓库一样
git remote add origin git@github.com:melodyyan0113/studygit.git
vim melody.txt --> git add melody.txt --> git commit -m "add melody.txt" # 然后在本地创建新文件
git push -u origin master # 然后把本地的studygit推送到远程的studygit
vim melody.txt --> git add melody.txt --> git commit -m "change melody.txt" # 第二次修改文件
git push # 再次推送就直接git push
cd home
git clone git@github.com:melody0113/lanmp.git
cd lanmp
vim lanmp.sh
git add lanmp.sh
git commit -m "chang a line ##1111"
git push # 推送到远程服务
git pull # 更新远程代码到本地
cd ../studygit/ # 首先进入studygit目录下
git branch # 查看分支
git branch melody # 创建分支
git checkout melody # 切换到melody分支下,创建新的linux.txt,并提交
vim linux.txt --> git add linux.txt --> git commit -m "add a newfile linux.txt"
git checkout master # 再切换到master分支下,并没有发现linux.txt
git checkout melody # melody分支下才有linux.txt文件
# 把新的分支合并到旧的分支上去,
git checkout master # 首先切换到要合并的分支上
git merge melody # 把melody分支合并到master分支上
# 如果master分支和melody分支同时对linux.txt进行了编辑,当合并时会提示冲突,需要先解决冲突才可以继续合并。
# 解决冲突的方法是在master分支下,编辑linux.txt,改为melody分支里的linux.txt的内容。然后提交linux.txt,再 合并melody分支。
git branch -d melody # 删除分支
git branch -D melody # 强制删除
master分支是非常重要的,只有在线上发布代码时才用这个分支。 dev分支,专门用途开发的,只有当发布到线上之前,才会把dev分支合并到master 开发人员在dev的基础上再分支成个人分支,个人分支(在自己pc上)里面开发代码,然后再合并到dev分支
# dev分支合并bob分支的命令如下
git checkout dev #先切换到dev分支
git merge bob
# 当正在编辑文件时,发现另外一个分支里有bug,就可以用git stash保留现场,处理完bug后再来编辑文件
vim 3.txt
git add 3.txt
git stash # 保留现场
git status # 查看状态
git stash list # 查看所有保留的现场
git stash apply # 恢复现场
git stash apply stash@{0} # 指定stash
cd ../studygit/
# 取别名
git config --global alias.ci commit
git config --global alias.br branch
git config --global alias.co checkout
git config --global alias.lg "log --pretty=oneline"
# 用别名查看相关的命令
git lg
git br dev
git co dev
git co master
git br
cat /root/.gitconfig # 别名的配置文件所在路径
# 查看git别名使用命令
git config --list |grep alias
#查看log小技巧
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) reset' --abbrev-commit"
#取消别名
git config --global --unset alias.br