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   //取消别名