本地仓库操作
1.安装git
# 在虚拟机上安装
sudo apt-get install git ubuntu安装
sudo yum install -y git centos安装
2.查看是否安装成功
git version 查看版本
3.创建项目
1,创建git_test 文件夹, 表示工作项目
2,cd git_test
3,git init
git init 把这个目录变成Git可以管理的仓库(后续新建提交和ssh克隆需要)
# 会创建一个.git隐藏文件
++ ls -al
total 12
drwxrwxr-x 3 User User 4096 3月 27 16:22 .
drwxr-xr-x 14 User User 4096 3月 27 16:22 ..
drwxrwxr-x 7 User User 4096 3月 27 16:22 .git
++ ls .git 显示配置信息
配置个人信息
# 配置个人信息
git config --global user.name "laowang" # 配置名字
git config --global user.email "python@admin.com" # 配置邮箱
# 配置信息出现在.git/config文件中
基本操作
创建版本库
$ pwd # 命令用于显示当前目录(没啥用)
$ git init # 把这个目录变成Git可以管理的仓库(后续新建提交和ssh克隆需要)
操作版本库
$ git add # 文件名 添加文件(新增或者更改都需要先add)
$ git commit -m "说明" # 提交到本地版本库
$ git status # 查看仓库状态
版本回退(从一个commit恢复)
$ git log # 查看版本历史
$ git reset --hard HEAD^ # 回退到上个版本
$ git reset --hard 1094a # 回退到特定版本号(commit以后回退)
$ git reflog # 记录每一次命令
$ git checkout -- file # 直接丢弃工作区的修改(add以前回退)
$ git reset HEAD <file> # 添加到了暂存区时,想丢弃修改(add以后回退)
删除文件
$ git rm file(已经add/commit,在目录中删除)
$ git checkout -- file # 删错了回退
新建测试文件
vim test11.py
查看文件状态
git status
####f.将工作区添加到暂存区
# 添加项目中所有文件
git add .
或者
# 添加指定文件
git add test01.py
将暂存区文件提交到仓库区
commit会生成一条版本记录
-m后面是版本描述信息
git commit -m '版本描述'
git status # 查看工作区没了
git log # 查看版本历史 在commit那个位置
git reflog # 记录每一次命令
git reset --hard HEAD^ # 回退到上个版本
git reflog
可以查看所有分支的所有操作记录(包括commit和reset的操作),包括已经被删除的commit记录,git log 不能察看已经删除了的commit记录
修改文件
vim test11.py
查看状态
git status # 会变成红色 提示修改
提交内容到工作区
git commit -am '新增内容'
4.回退版本
方法一:
HEAD
表示当前最新版本HEAD^
表示当前最新版本的前一个版本HEAD^^
表示当前最新版本的前两个版本,以此类推…
方法二:
HEAD~1
表示当前最新版本的前一个版本HEAD~10
表示当前最新版本的前10个版本,以此类推…
git reset --hard HEAD^ 会回退到上一个版本也就是上一个文件的内容
5.撤销修改
-
只能撤销工作区、暂存区的代码,不能撤销仓库区的代码
-
撤销仓库区的代码就相当于回退版本操作
-
撤销工作区代码
- 新加代码
num3 = 30
,不add
到暂存区,保留在工作区
git checkout 文件名
- 新加代码
-
撤销暂存区代码
- 新加代码
num3 = 30
,并add
到暂存区
- 新加代码
# 第一步:将暂存区代码撤销到工作区 git reset HEAD 文件名 # 之前的代码还有 # 第二步:撤销工作区代码 git checkout 文件名 cat test.py # 添加的内容消失了
-
6.文件删除
-
确定删除处理与误删
- 确定删除
# 删除文件 rm 文件名 # git确定删除文件,对比添加文件git add git rm 文件名
提交删除就能撤消更改了, 下面的方法可以撤回
-
误删处理,撤销修改
touch test.py # 创建文件 git add test.py # 暂存区 git commit -m '删除描述' # 提交到仓库 rm test11.py # 删除文件 git checkout -- 文件名 # git撤销修改
分支操作
所以格式应为:
添加远程库(连接远程库)
# 添加密钥,注意邮箱名字为注册github的邮箱名
ssh-keygen -t rsa -C "youremail@example.com"
# github创建仓库, 名字与本地文件名一致
初始化本地仓库
git init
关联远程仓库
git remote add origin git@github.com:<github 用户名> / <github远程库的名字>.git
https://github.com/create-codeless/git_demo.git
# git remote add origin git@github.com/create-codeless/git_demo.git
git remote add origin https://gitee.com/tzjy123456/dj32.git
拉去远程仓库(将远程库的代码同步过来)–主分支
git pull --rebase origin master
提交到仓库 输入登录账户密码
git add .
git commit -m '添加测试'
git push -u origin master # 第一次的push
# 用户名/密码 github 的账户和密码
分支操作
$ git branch -a # 查看所有分支
$ git branch -vv # 查看分支关联
$ git branch demo # 创建分支
$ git checkout demo # 切换分支
$ git merge dev # 合并某分支到当前分支
$ git branch -d dev # 删除分支
$ git checkout -b dev # 创建并切换分支
$ git push origin [name] # 创建远程分支(本地分支push到远程):
$ git push origin :heads/[name] # 删除远程分支
此例的意思就是,我们有一个叫做 master 的分支,并且该分支是当前分支。
当你执行 git init 的时候,默认情况下 Git 就会为你创建 master 分支。
如果我们要手动创建一个分支。执行 git branch (branchname) 即可。
$ git branch dev
$ git branch
* master
dev
$ ls
README
$ echo 'htllo world' > test.txt
$ git add .
$ git commit -m 'test.txt'
$ ls
README test.txt
$ git checkout dev # 切换分支就没了
$ ls
README
$ git checkout master # 切换到主分支又有了
# 创建分支立马切换 主分支内容还在分支里面 删除之前的内容对主分支不影响
git checkout -b dev
touch demo.txt
git add .
git commit -am '测试'
# 分支合并
git merge dev
ls # 查看
git branch -d dev # 删除分支
git branch # 查看分支
ls # 查看文件分支的文件被合并了
版本管理操作
$ git tag # 查看版本
$ git tag [name] # 创建版本
$ git tag -d [name] # 删除版本
$ git tag -r # 查看远程版本
$ git push origin [name] # 创建远程版本(本地版本push到远程)
$ git push origin :refs/tags/[name] # 删除远程版本