赞
踩
git 是一个开源的分布式版本控制系统,其操作主要流程如下:
- # 1、下载(https://git-scm.com/)
- yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
- # 2、安装
- ./configure --prefix=/usr/local/git
- make && make install
- git --version # 查看 git 版本
- # 1、配置(去掉 --global 参数只对当前仓库有效)
- git config --global user.name "weilong"
- git config --global user.email "zwlong1114@163.com"
- # 2、配置公钥(生成公钥,并且将生成的公钥粘贴到远程仓库中。例如:github中 (settings->Deploy keys->Add deploy key->key内即可))
- ssh-keygen -t rsa -C "zwlong1114@163.com"
- cat /root/.ssh/id_rsa.pub
- # 3、验证是否秘钥配置成功
- ssh -T git@github.com
工作区:就是在电脑里能看到的目录。
暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。
- # 查看已有的配置信息
- git config --list # 这些配置也可以在 ~/.gitconfig 或 /etc/gitconfig 查看
- git config user.name # 获取某个环境变量的值
- git config -e # 编辑 git 配置文件(针对当前仓库)
- git config -e --global # 编辑 git 配置文件(全局)
git init # 该命令执行完后会在当前目录生成一个 .git 目录
- # 将更改添加到本地暂存区中
- git add ./--all # 将 所有 添加到暂存区
- git add [file1] [file2] ... # 将 一个或多个文件 添加到暂存区
- git add [dir] # 添加指定目录到暂存区,包括子目录
- # 将提交到暂存区的更改提交到本地仓库
- git commit -m '初始化项目版本'
- # 克隆(可以指定克隆到的目录,也可以不指定,直接克隆到当前路径下)
- git clone <repo> <directory> # repo:Git 仓库;directory:本地目录。
- git clone <directory> <directory> # 从一个目录克隆到另一个目录。
- # 查看仓库当前状态,显示有变更的文件
- git status -s # 通常使用 -s 参数来获得简短的输出结果
- # 比较两个文件的不同,暂存区和工作区的差异
- git diff [file] # 显示文件在暂存区和工作区的差异
- git diff --cached [file]/git diff --staged [file] # 显示暂存区和上一次提交(commit)的差异
- git diff [first-branch]...[second-branch] # 显示两次提交之间的差异
- git diff HEAD # 查看已缓存的与未缓存的所有改动
- git diff -stat # 显示摘要而非整个 diff
- # 将暂存区提交到本地仓库
- git commit -a -m "message" # -a: 修改文件后不需要执行 git add 命令,直接来提交;-m:添加提交信息
- git commit [file1] [file2] ... -m [message] # 提交暂存区的指定文件到本地仓库区
- # 回退版本
- git reset [--soft|--mixed|--hard] [HEAD] # --mixed为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。
- #### 例子:####
- # git reset HEAD^ #回退所有内容到上一个版本,HEAD表示当前版本,HEAD^上一个版本,HEAD^^上上一个版本。以此类推...
- # git reset HEAD^ hello.php # 回退 hello.php 文件的版本到上一个版本
- # git reset 052e # 回退到指定版本
- # git reset --soft HEAD~3 # 回退上上上一个版本,HEAD~0表示当前版本,HEAD~1上一个版本。以此类推...
- git reset --soft HEAD # --soft 参数用于回退到某个版本
- git reset --hard HEAD # --hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交
- # git reset --hard origin/master # 将本地的状态回退到和远程的一样
- # 将文件从暂存区和工作区中删除
- git rm <file> # 将文件从暂存区和工作区中删除,删除之前修改过且已经放到暂存区的话,必须用强制删除选项 -f
- git rm --cached <file> # 如果想把文件从暂存区域移除,但希望保留在当前工作目录中,使用--cached即可。
- # 移动或重命名工作区文件
- git mv -f [file] [newfile] # 如果新文件名已经存在,但还是要重命名它,可以使用 -f 参数
- # 查看提交历史
- git log # 查看历史提交记录
- git blame <file> # 以列表形式查看指定文件的历史修改记录
- git log --oneline # --oneline选项来查看历史记录的简洁的版本,反向展示:git log --reverse --oneline
- git log --graph # 查看历史中什么时候出现了分支、合并
- git log --author # 查找指定用户的提交日志
- git log --oneline --before={3.weeks.ago} --after={2023-04-18} --no-merges
- # 指定日期,可以执行几个选项:--since 和 --before,也可以用 --until 和 --after,--no-merges 选项以隐藏合并提交
- # 远程仓库操作
- git remote -v # 显示所有远程仓库
- git remote show [remote] # 显示某个远程仓库的信息
- git remote rm name # 删除远程仓库
- git remote rename old_name new_name # 修改仓库名
- # 将本地仓库和远程仓库进行关联和远程分支
- git remote add origin git@github.com:weilong/test.git # weilong/test.git已在远程创建,origin是自定义远程仓库主机名
- git push -u origin master # 给远程主机名为origin的仓库创建一个新的分支master
- # 创建本地、远程分支,并删除
- git checkout -b newBranch # 新创建并切换到newBranch(本地分支)
- git checkout -b newBranch origin/develop # 基于远程origin/develop 分支新创建并切换到newBranch(本地分支)
- git branch -d/-D newBranch # 删除/强制删除本地分支newBranch
- git push -u origin newBranch # 新创建远程分支
- git push --delete origin newBranch # 删除远程分支
- # 推送、拉取
- git pull origin master:brantest # 将远程主机 origin 的 master 分支拉取过来,与本地的 brantest 分支合并。
- git pull 版本库 分支名 # 如果远程分支是与当前分支合并,则冒号后面的部分可以省略。
- git push 版本库 分支名
- # 拉取远程分支变更
- git fetch [origin]
- git fetch origin 远程分支名:本地自定义分支名 # 如果本地分支不存在就新建,否则更新(基于远程分支创建本地分支)
- # 查看本地分支和远程分支列表
- git branch # 查看本地分支
- git branch -r # 查看远程分支列表
- # 创建本地分支
- git branch newBranch 和 git checkout newBranch # 创建并且切换分支,这两条命令等价与 git checkout -b newBranch
- git branch newBranch oldBranch # 从现有分支创建新分支
- # 恢复删除的分支
- 删除分支 git 只是删除指向相关提交的指针,知道删除分支时提交对象的指针就可以恢复分支
- git reflog # 查看相关提交的散列值
- git branch branch_name HEAD@{1} # 从 HEAD@{1} 提交中恢复分支
- # 分支合并
- git merge branch2 # 假设当前所在分支为 branch1,将 branch2 分支合并到 branch1 中
- git reset --merge
- git merge --no-ff branch2 # 快进合并,使得当前落后分支到达最新分支branch2的状态后,完成合并
创建标签是针对特定提交或者分支当前版本。
- # 显示所有标签
- git tag -l [1.2.*] # 可以使用模式匹配
- # 创建轻量标签
- git tag 标签名
- git tag 标签名 提交版本
- git tag 1.2.3 master -m "self define info" # 在master分支上的当前版本创建一个名为1.2.3的标签
- # 创建附注标签
- git tag -a 标签名称 -m 附注信息
- git tag -a 标签名称 提交版本号 -m 附注信息 # 给特定的提交版本号创建标签
- # 删除标签
- git tag -d v1.0
- # 查看某个版本的修改内容
- git show v1.0
- # 1、创建远程标签
- # 默认情况下,git push 命令并不会把标签推送到远程仓库中,因此,我们必须手动地将本地的标签推送到远程仓库中
- git push origin 标签名称 # 将指定的标签上传到远程仓库(单个标签)
- git push origin --tags # 将所有不在远程仓库中的标签上传到远程仓库(所有标签)
- # 2、删除远程标签(两种方式)
- git push origin :/ref/tags/标签名
- git push origin --delete 标签名
本文详细介绍了 git 的安装配置,仓库、分支、标签的详细操作。掌握这些命令,足以完成 git 操作代码库。
本人是一个从小白自学计算机技术,对运维、后端、各种中间件技术、大数据等有一定的学习心得,想获取自学总结资料(pdf版本)或者希望共同学习,关注微信公众号:it自学社团。后台回复相应技术名称/技术点即可获得。(本人学习宗旨:学会了就要免费分享)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。