git从入门到放弃

一、工作流程图

git从入门到放弃_第1张图片
image.png

git从入门到放弃_第2张图片
image.png

二、相关名词:

工作区:文件目录;
版本库:index+master
暂存区:index=stage
.git 隐藏目录 ,.git/index

三、配置参数

  • 查看全部配置:git config --list

  • 首次使用git需要配置提交者的姓名好邮箱,在提交代码时会附带这些信息

git config --global user.name 'xie'
git config --global user.email [email protected]

四、初始化仓库

方式一、github创建仓库是勾选:Initialize this repository with a README,然后通过git clone 克隆岛本地
方式二、不勾选 Initialize this repository with a README,创建本机仓库与远程仓库关联

  • 把当前目录变成Git可以管理的仓库:git init

ls -ah命令就可以看见 .git 目录,这个目录是Git来跟踪管理版本库的

关联后远程仓库名字默认叫origin,这是Git默认的叫法(如果提示远程仓库已存在,执行以下命令进行删除:git remote rm origin

五、提交|推送|拉取 代码

touch README.md 创建一个空文件
git add README.md 将该文件添加到暂存区/index
git commit -m 'first commit' 提交缓存区内容到master
git push origin master 将master推送到远程仓库origin
git status 查看状态,输出最后一次commit后是否有修改。
git status -s 查看简洁信息

文件前的符号代表的含义:

  • 红色??代表工作区中新增的文件
  • 红色M:代表有修改且没有执行git add . 的文件
  • 绿色A:代表已添加到缓存区的文件
  • 绿D代表已删除的文件
image.png

git diff README.md 查看已修改文件的差异: 新增了ccc,修改了add和222

image.png

git pull 拉取远程分支更新到本地仓库(fetch),并将进行合并(merge)
git pull = git fetch + git merge

六、版本管理:

git log 查看git commit 版本历史
git log --pretty=oneline 单行简洁模式
git reflog 查看切换版本命令历史记录

image.png

git reset --hard HEAD 退回到最后comment的版本;
git reset --hard HEAD^ 退回到最新版本的上一个版本;
git reset --hard HEAD~3 退回到最新版本的上面第三个版本,以此类推
git reset --hard 31ca2 指定commit id 快速切换到指定历史版本

在Git中,用HEAD表示最新提交的版本,也就是最新的提交1094adb...,上一个版本就是HEAD,上上一个版本就是HEAD^,上100个版本写成HEAD~100。切换版本只是将HEAD指向不同的版本。

git从入门到放弃_第3张图片
image.png
  • 删除工作区文件/目录(不完整)
    git rm a.txt 和 git rm -rf a.dir

  • 删除/修改工作区文件/目录后进行复原:

git checkout --a.txt 让这个文件还原到最后一次git add/git commit的状态。
优先选择暂存区的内容,暂存区已经git commit,则从本地仓库中还原
git checkout --master a.txt 加入已经执行git add 而没有执行git commit ,让a.txt退回到本地本地仓库。master=head
git checkout --dir 加入删掉dir目录里的文件,checkout后可以复原此文件

七、分支管理

  • 分支管理
    git branch 查看本地的分支以及当前所在分支
    git branch -a 查看远程的所有分支和本地分支。
    git branch <分支名> 创建本地分支
    git branch -d <分支名> 删除本地分支

  • 分支管理
    git checkout <分支名> 切换分支
    git checkout -b <分支名> 创建分支并切换过去
    git checkout -b <分支名><已有分支>根据已有分支 创建新分支并切换过去

  • 分支合并推送
    git merge <分支名> 合并指定分支到当前分支
    git push origin mybranch 推送本地分支的内容到远程仓库的mybranch分支下,没有就创建。
    git push origin --delete <分支名> 删除远端的分支

对分支的删除只是删除的指向该commit号的指针,并不会删除其相关的提交号, 在日志中仍然可以找到之前的commit记录,也仍然可以在该commit上创建新的分支。

你可能感兴趣的:(git从入门到放弃)