Git学习笔记
Git的两大特点
- 版本控制:可以解决多人同时开发的代码问题,也可以解决找回历史代码的问题。
- 分布式:Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。
Git安装和创建本地版本库
-
安装git
sudo apt install git
-
在git文件夹下创建本地版本库
git init
Git常用命令
- 创建版本
git add filename
git commit -m "version_name"
- 查看版本
git log //完整显示
git log --pretty=oneline //简短显示
git log --graph --pretty=oneline //查看分支树简短显示
- 回退到某一个版本
- git reset --hard HEAD^,尖括号的个数表示回退的版本数
- git reset --hard HEAD~[number],number表示回退的版本数
- git reset --hard 版本号,表示回退到版本号对应的版本
git reset --hard HEAD^
git reset --hard HEAD~1
git reset --hard e7c23c79a52257539c22d91eaeead9da85e32047
-
查看版本的提交记录
git reflog
- 查看工作状态
git status
- 丢弃工作区中对文件的修改
git checkout -- filename 或 git restore filename
- 丢弃文件在暂存区中的改动
git reset HEAD filename git checkout -- filename 或者 git restore --staged filename git restore filename
- 对比文件的不同
git diff HEAD HEAD^ -- filename //表示前一个版本与当前版本的不同 git diff HEAD -- file //表示对比工作区与当前版本文件的不同
- 删除文件
rm filename git rm filename git commit -m "version_info"
工作区与暂存区
- 工作区(Working Directory),电脑中的git版本库目录.
- 版本库(Repository),工作区中的.git隐藏目录,保存着暂存区和自动创建的分支master,以及指向master的指针HEAD.
- 暂存区(index或stage),在.git隐藏目录下
- 在往版本库添加文件时,分两步执行:
- 用git add 把文件添加进暂存区
- 用git commit把暂存区中的文件全部提交到当前分支
- git管理的文件修改,只会提交暂存区的修改来创建版本
分支
-
查看分支
git branch
-
创建分支
git branch <name>
-
切换分支
git checkout <name>
-
创建并切换分支
git checkout -b <name>
-
合并分支
git merge <name> //合并指定分支到当前分支 git merge --no-ff -m "version_info" <name> //禁止快速合并
-
删除分支
git branch -d <name>
-
保存工作状态
git stash
-
查看保存的工作状态
git stash list
-
恢复工作状态
git stash pop
Github使用
- 克隆项目
git clone <ssh key>
-
推送分支
git push origin <branch name>
-
跟踪远程分支
git branch --set-upstream-to=origin/<branch name> <branch name>
-
拉取远程分支的代码
git pull origin mybranch
-
设置远程仓库的地址
git remote set-url origin <repositories name>