• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
dzw9
博客园    首页    新随笔    联系   管理    订阅  订阅
Git

1. 简介

开源的分布式版本控制系统,也是个内容管理系统(CMS),工作管理系统

2. 安装

2.1 Installation under Ubuntu
$ sudo apt update
$ sudo apt-get install git
$ git --version
2.2 windows下
  • 安装git
  • 在本地仓库文件夹中右键菜单git bash here
2.3 Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量。
  • /etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。
  • ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。
  • 当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。
$ git config --list   //查看配置文件
$ git config user.name  //查看对应的配置变量
$ git config --global user.name "wenyu"  //用户名
$ git config --global user.email 445722658@qq.com  //邮箱
$ git config --global core.editor vim //设置默认编辑器

如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息

2.4 工作流程

克隆到本地作为副本--编辑、添加、删除文件--提交及推送--修改错误或者回退

2.5 SSH设置
$ ssh-keygen -t rsa -C "445722658@qq.com"   //生成ssh密匙
$ cd ~/.ssh
$ cat id_rsa.pub   // id_rsa是私钥  id_rsa.pub是公钥

github主页--settings--ssh and GPG keys--New SSH key--粘贴到key--Add

$ ssh git@github.com  //测试是否成功 输入yes

image

3. 使用

工作区:电脑中看到的目录
暂存区:索引(.git/index)中
版本库:工作区的.git

$ git init newrepo  //创建仓库 初始化
$ git clone <repo> <directory>  //克隆库到指定的目录
// Linux 系统中,commit 信息使用单引号 ',Windows 系统使用双引号 "

$ git add   //添加文件到暂存区
$ git status  //查看当前仓库状态,显示有变更的文件

image

$ git diff //比较暂存区和工作区的差异
$ git commit //提交暂存区到本地仓库
$ git reset  //回退版本
$ git rm //将文件从暂存区和缓存区删除
$ git mv //移动或重命名工作区文件
$ git log //提交记录 --oneline 简洁版本  --reverse 逆向显示
--author 指定用户  --before={3.weeks.ago} --after={2010-04-18} --since --until  指定日期

//git push 上传远程代码并合并
$ git push origin master  //将本地的 master 分支推送到 origin 主机的 master 分支
$ git push --force origin master //强制
$ git push origin --delete master //删除 origin 主机的 master 分支

//tag标签
$ git tag -a v1.0   //-a 选项意为"创建一个带注解的标签"

image

4.提交与修改

$ git add .  #添加当前目录下的所有文件到暂存区
$ git add [dir]  #添加目录
$ git add [file1] [file2]  #添加文件

$ git status -s  #查看当前状态  -s 简短输出结果

$ git diff  #查看尚未缓存的改动
$ git diff --cached [file] #显示暂存区和上一次提交(commit)的差异
$ git diff --staged [file]

$ git commit -m [message] #将暂存区内容添加到本地仓库中
$ git commit [file1] -m [message]  #指定文件
$ git commit -am "备注" #-a 参数设置修改文件后不需要执行 git add 命令,直接来提交

#默认--mixed 可以不用带该参数
$ git reset HEAD^            # 回退所有内容到上一个版本  
$ git reset HEAD^ hello.php  # 回退 hello.php 文件的版本到上一个版本  
$ git  reset  052e           # 回退到指定版本
$ git reset --soft HEAD~3   # 回退上上上一个版本
--hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交
$ git reset --hard HEAD~3  # 回退上上上一个版本  
$ git reset –hard bae128  # 回退到某个版本回退点之前的所有信息。 
$ git reset --hard origin/master    # 将本地的状态回退到和远程的一样
#HEAD 表示当前版本,HEAD^或者HEAD~1 上一个版本
$ git reset HEAD hello.php  #取消之前 git add 添加

$ git rm <file>  #从暂存区和工作区中删除 -f强制
$ git rm --cached <file>  #只从暂存区中删除
$ git rm -r * #递归删除

$ git mv [file] [newfile]  #移动或重命名  -f强制

5. git log 提交日志

$ git log   #查看历史提交记录
$ git blame <file>  #以列表形式查看指定文件的历史修改记录
$ git log --oneline  #简洁版本
--graph 查看历史中什么时候出现了分支、合并
--reverse 逆向显示所有日志
--no-merges 隐藏合并提交
$ git log --author=wenyu #指定用户log

--since  --before  --until  --after  #指定日期
$ git log --oneline --before={3.weeks.ago} --after={2010-04-18}

6. 远程操作

6.1 remote 远程库
$ git remote rm <repo>  //删除远程仓库
$ git remote rm oldname newname  //重命名仓库名
$ git remote -v  //显示所有远程仓库
$ git remote show <repo>  //显示某个远程库信息
git remote add 本地版本库 <repo>  #添加远程版本库
6.2 git fetch 从远程获取代码库

该命令执行完后需要执行 git merge 远程分支到你所在的分支

$ git fetch  #拉取更新
$ git merge  #从远端仓库提取数据并尝试合并到当前分支
6.3 pull

从远程获取代码并合并本地的版本,其实就是 git fetch 和 git merge FETCH_HEAD 的简写

$ git pull <远程主机名> <远程分支名>:<本地分支名>
$ git pull origin #更新
$ git pull origin master

6.4 push

第一次push需要使用 -u 参数,建立本地的分支和远端某个分支之间的关联,下次push会自动关联

git push <远程主机名> <本地分支名>:<远程分支名>
git push <远程主机名> <本地分支名>  #本地分支名与远程分支名相同可以省略
$ git push origin master  #将本地的 master 分支推送到 origin 主机的 master 分支
$ git push --force origin master  #版本有差异时强制推送
$ git push origin --delete master  #删除 origin 主机的 master 分支
$ git push origin main  #常用
7. branch 分支管理
$ git branch  #列出所有本地分支  -r列出所有远程分支   -a列出所有本地分支和远程分支
$ git branch -b [branch-name]   #新建一个分支并切换到该分支
$ git branch -d (branchname)  #删除分支
$ git checkout (branchname)  #切换分支
$ git merge #合并分支

示例

$ mkdir test                     # 创建测试目录
$ cd test/                       # 进入测试目录
$ echo "Git测试" >> README.md     # 创建 README.md 文件并写入内容
$ ls                                        # 查看目录下的文件
README
$ git init                                  # 初始化
$ git add README.md                         # 添加文件
$ git commit -m "添加 README.md 文件"        # 提交并备注信息
# 提交到 Github
$ git remote add origin git@github.com:tianqixin/runoob-git-test.git
$ git push -u origin main
posted on 2023-04-21 17:54  dzw9  阅读(19)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3