git入门使用

git介绍

git是一个分布式版本管理控制系统,而SVN不是分布式的,git没有一个全局的版本号,而SVN有一个确定的全局版本号;git与SVN的结构如下图:
git入门使用_第1张图片

git工作区、暂存区和版本库(数据仓库Repository)
  • 工作区:本地电脑工作的目录;
  • 暂存区:stage,一般存放在.git目录先的index中,故也把暂存区有时叫索引区;
  • 版本库:工作区隐藏目录.git;
    三者的关系如下图:
    git入门使用_第2张图片
git创建仓库
  • git init:创建初始化一个本地仓库,包含工作区、暂存区和版本库,后面可以加一个指定的目录作为仓库的目录;
  • git init --bare:创建一个裸库,不含工作区,一般服务器使用;
修改全局配置
  • git config --global user.name “用户名”:配置用户名
  • git config --global user.email “邮箱地址”::配置邮箱
  • git config --get user.name :查看用户名
工作流程
  • git status:查看当前目录状态,红色表示修改的文件,绿色表已添加暂存区的文件;
  • git status -u no:只显示在仓库中托管的文件;
  • git add + 文件名:可加多个,将修改的文件添加到暂存区;
  • git add .;将所有修改的文件添加到暂存区;
  • git add . -u:只提交库中托管有修改的文件;
  • git rm --cache + 文件:删除暂存区的指定文件;
  • git commit -m ”提交信息说明“:暂存区提交到版本库(本地仓库);
  • git commit:与上面一样,交互式填写提交信息;
  • git commit -a:直接提交版本库,即将添加暂存区和提交版本库两个动作一起做;
  • git reset --head:使用版本库重置工作区;
版本回退
  • git log:查看提交信息;
  • git log --pretty=oneline:查看提交信息,每个提交信息只显示一行;
  • git log --stat :显示历史提交文件信息
  • git blame 文件:一列表的形式查看顶顶文件的所有历史修改记录;
  • git reset --soft HEAD~1:撤销最近一次的commit;
  • git reset --hard HEAD~1:撤销最近一次的add、commit以及修改的文件;
  • git restore <文件>:撤销工作区(没有添加到暂存区)的修改文件;
  • git reset --head 提交编号:回退到编号所对应的版本;
  • git revert 提交编号:回滚编号提交的内容;
  • git reflog:查看所有变动信息,默认保存三个月的记录;
  • git log -G:在历史修改行中查找;
  • git grep -n 查找内容;在工作区查找;
  • git grep --untracked -n 查找内容;在工作区查找,只查找托管的内容;
    git入门使用_第3张图片
远程仓库

有两中方式链接远程仓库,http协议和ssh协议
http协议链接需要配置.git/config配置文件,将用户名和密码写到配置文件中;
ssh协议链接可用密钥进行链接,生成密钥:ssh-keygen.exe -t rsa -c “邮箱地址”;
将共钥复制到端程账户的ssh密钥配置中即可;
首次可能回出现403错误,是由于权限问题,需要配置上面步骤;

  • git remote add origin https://远端地址:建立远端与本地链接,origin是远端地址的命名,可以算便起;
  • git remote -v:查看远端仓库链接;
  • git clone 远程仓库地址:将远程仓库克隆到本地;
  • git push origin head:master;将本地仓库中的内容同步推送到远端的master分支;
  • git pull origin master:brantest:经远程仓库origin的maser分支与本地的brantest分支合并
  • git push origin :brantest:删除远端分支;
git分支
  • git branch:查看分支,当前分支为绿色,且有*号;
  • git branch -avv:查看分支详细信息;
  • git branch 分支名:创建分支;
  • git checkout 分支名:切换分支:
  • git checkout -b 分支名:创建并切换到该分支下;
  • git branch -d 分支名:删除分支;
  • git merge 被合并的分支名:合并分支到当前分支
  • git rebase 被合并的分支名:与merge效果一样;
    解决冲突:
    1、git pull:先拉去分支
    2、手动修改冲突内容
    3、重新提交:git add 文件–>git commit–>git push
git保存工作区文件
  • git stash:保存当前工作进度,并将工作区文件和暂存区恢复到修改之前;
  • git stash save message:作用同上,message为注释;
  • git stash list:显示保存工作进度列表,编号越小代表保存进度时间越近;
  • git stash pop stash@{num}:恢复工作进度到工作区,stash@{num}为可选项,没有该参数表示最近一次的工作进度;
  • git stash apply stash@{num}:可重复恢复工作进度到工作区(追加),stash@{num}为可选项;
  • git stash drop stash@{num}:删除保存的工作进度,stash@{num}为可选项;
  • git stash clear:删除所欲保存工作进度
git瘦身

git reflog expire --expire-unreachable=now --all:设置不可达立即过期,默认可达90天过期,不可达30天过期;
git gc --prune=now -aggressive:清理过期的分支文件;

修改提交
  • git commit --amend:修改提交,会改变哈希值,但是不是产生新的提交;
  • git commit --amend --author=”作者信息“:修改作者信息;
    commit已经push了,就不能修改提交
    https://mp.weixin.qq.com/s/xy_lKQ9zqyeS8bWuGSyMeA
    https://www.runoob.com/git/git-tutorial.html

你可能感兴趣的:(工具,git)