git
1,linux安装
yum install -y epel-release
yum install -y git
windows安装:https://git-for-windows.github.io/
2,设置
git config --global user.name "lihongwei"
git config --global user.email "lihongwei549@163.com"
3,创建版本仓库并推送文件
mkdir /home/gitroot
cd /home/gitroot
git init //用这个命令初始化,让这个目录变成git可以管理的仓库
ls -a 可以看到多了一个.git的目录
. .. .git
echo -e '123\naaaa\n456' > 1.txt
#版本控制
#提交需要俩步
git add 1.txt //添加文件
git commit -m "add new 1.txt" //提交,并添加描述
git checkout -- 1.txt //下载仓库中文件
git status //查看本地状态
git diff //比较
git reset HEAD 1.txt //add之后,然后回退到add之前
git log //查看提交历史
git log --pretty=oneline //查看提交历史
git reset --hard 59c3 //版本回滚,前4个字母就可以
git reflog //所有版本记录
#文件删除
git rm 1.txt
git commit -m "del 1.txt"
github
注册-->新建仓库-->setting-->加公钥
本地创建一个和github一样的仓库-->初始化
git remote add testobj https://github.com/MrLeeang/study.git //这一步是创建远程仓库
修改文件-->**本地提交**-->然后push到*github(git push)首次需要加参数git push -u origin master
也可以 git pull -u origin master 同步线上
如果403,那么改配置文件.git/config ssh://git@github.com/MrLeeang/study.git
git clone https://github.com/MrLeeang/study.git //克隆仓库
#分支
git branch //查看分支
git branch aming //创建分支
git checkout aming //切换分支到aming
git branch //当前分支会有一个*
git merge aming //合并分支,把aming合并到当前分支,marge后边一定是新的,原则是新的覆盖旧的
git branch -d aming //删除分支
git branch -D aming //如果删除之前没有合并,会提示,D强制删除
#现场保留
git add 1.txt //编辑一半,先add,再stash,可以保留现场,不提交,status也看不到
git stash
git status
git stash list //查看保留现场的文件
git stash replay stash@{0} //恢复现场
#远程分支
git remote -v //查看远程库信息
git ls-remote origin //查看远程分支
git push origin dev //向origin这个库推送dev这个分支,如果推送失败,先用git pull抓取远程的新提交
git checkout -b branch-name origin/branch-name //本地创建和远程一样的分支,最好名称一致
#标签管理
git checkout master //先切换到master
git tag v1.0 //给master打标签
git tag //查看标签
git show v1.0 //查看标签名的具体信息
git tag -d v1.1 //删除标签
git log --pretty=oneline --abbrev-commit //查看历史commit 4位
git tag v.1.1.1 4位历史id //给历史commit打标签
git tag -a v.1.1.1 -m "描述" commit_id
git push origin v1.0 //推送指定标签到远程
git push --tag origin //推送所有标签
git tag v1.0 -d //删除本地标签
git push origin :refs/tags/v1.0 //删除远程标签
##git别名
git config --global alias.ci commit
git config --global alias.co checkout
git config --global alias.br branch
查看别名
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)%C(bold blue)<%an>%Creset%' --abbrev-commit"
git config --global --unset alias.br //取消别名