git的安装、工作流程和命令

1、安装

由于本人主要是在windows下开发,因此这里只讲windows下git的安装(Linux、Unix和Mac下的git安装这里不列举)。
1)官网下载:https://git-scm.com/downloads
在这里插入图片描述
根据需要进行下载,我这里选择Windows 64位的安装包

2)双击运行exe,一直默认安装即可(也可以修改安装路径);

安装完成之后,鼠标右键可以看见,多了两个选项:
在这里插入图片描述
Git GUI Here这个主要是git的图形窗口(一般不用,会安装TortoiseGit使用);Git Bash Here主要是命令行,如下
在这里插入图片描述
说明git安装成功

2、工作流程

1)从远程仓库 clone git资源作为本地仓库;
2)从本地仓库中 checkout 代码接着进行修改;
3)提交代码前将代码 add 提交到暂存区;
4)commit 提交修改(提交到本地仓库,保存修改的各个历史版本);
5)修改完成,需要共享代码时, push 到远程仓库。

如下图:
在这里插入图片描述
工作区:在本地能看到的目录就是一个工作区

暂存区:.git目录下的index文件(.git/index)中,也叫索引

3、git管理文件版本

3.1 创建版本库

版本库可以简单的理解为一个目录,这个目录里面的所有文件可以被Git管理,每个文件的修改、删除等git都可以跟踪其历史。

git仓库是存在一个.git的文件夹的,该文件夹是隐藏的,若没有设置显示隐藏文件夹,用户是看不见该文件夹的,用户可以通过命令行 git init创建.git文件夹,直接创建或者右键点击"TortoiseGit在这里创建版本库"(弹出窗口不要勾选"制作纯版本库(没有工作目录)",若选中的话,那创建的版本库是没有工作目录的,即不能把文件加到本地仓库),包含.git文件夹的目录称为工作目录。

git会自动创建一个master分支,以及执行master的一个指针HEAD。

4、命令

4.1 init

——初始化git仓库

git init     //初始化git仓库
git init project    //在project目下下初始化git仓库

4.2 add

——将文件加入版本控制

git add readme.txt   //将readme.txt提交到仓库

4.3 clone

——从现有git仓库中拷贝项目

git clone https//test.git test     //将test.git仓库的内容拷贝到test目录下

4.4 config

——设置命令

git config --list    //显示当前git配置信息
git config -e        //针对当前仓库设置

4.5 status

——查看仓库当前状态,显示由变更的文件

git status        
git status -s     //获取简短的内容

4.6 diff

——比较文件的不同,暂存区和工作区的不同

git diff  [filename]                //尚未缓存的改动
git diff --cached [filename]      //查看已缓存的改动
git diff --staged [filename]
git diff HEAD           //查看已缓存的与未缓存的所有改动
git diff --stat         //显示摘要而非整个diff
git diff [first-branch] [second-branch]      //显示2次提交之间的差异

4.7 commit

——提交暂存区到本地仓库

git commit -m [message]            //提交
git commit [file1] ... [fileN]     //提交指定文件到仓库区
git commit -a                      //无需执行git add,直接提交

4.8 reset

——回退版本,可指定退回某一次提交的版本

git reset [--soft | --mixed | --hard] [HEAD]

–mixed是默认的,可不带该参数,用于重置暂存区的文件与上次的提交保持一致,工作区文件内容保持不变。

git reset HEAD~1                  //回退所有内容到上一个版本
git reset HEAD readme.txt       //回退readme.txt文件的版本到上一个版本
git reset xxx                   //回退到指定版本

–soft参数用于回退到某个版本

git reset --soft HEAD~3          //回退到前3个版本

–hard参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交:(注意:会删除回退点之前的所有信息)

git reset --hard HEAD~3          //回退到前3个版本
git reset --hard xxxx            //回退到某个版本回退点之前的所有信息
git reset --hard origin/master   //将本地的状态回退到和远程的一样

4.9 rm

——删除工作区文件

git rm [file]                        //将文件从暂存区和工作区中删除
git rm -f [file]                     //删除之前修改过且已放到暂存区,需使用强制删除选项 -f
git rm --cached [file]               //将文件从暂存区移除,保留在当前工作目录
git rm -r *                          //递归删除,删除该目录下的所有文件和子目录

4.10 mv

——移动或重命名工作区文件

git mv [file] [newfile]                        //移动或重命名一个文件、目录或软链接
git mv -f [file] [newfile]                     //newfile存在,需强制执行

4.11 log

——查看历史提交记录

git log                     //查看历史提交记录
git log --online            //查看历史记录的简洁版本
git log --graph             //查看历史中出现分支、合并的时间
git log --reverse           //逆向显示所有日志
git log --author            //查看指定用户提交的日志
git log --before(--since)={3.week.ago} --after(--until)={2021-07-25}    //查看3周前且在2021-07-25后的所有提交日志
git log --no-merges         //隐藏合并提交

4.12 blame

——查看指定文件的修改记录,以列表形式显示

git blame [file]

4.13 remote

——远程仓库操作

git remote -v                             //显示所有远程仓库
git remote show [remote]                  //显示某个远程仓库的信息
git remote add [shortname] [url]          //添加远程版本库
git remote rm name                        //删除远程仓库
git remote rename old_name new_name       //修改仓库名

若本地git仓库和github之间的传输是通过SSH加密的,需要配置验证信息:
首先生成SSH Key;
在~/下生成.ssh文件夹,打开id_rsa.pub,拷贝其中的key值;
接着打开github,进入Account——Settings——SSH and GPG keys——New SSH key——Title随便,key是拷贝的key;
执行ssh -T git@github.com 验证是否连接github成功。

4.14 fetch

——从远程获取代码库,该命令执行完需执行git merge远程分支到所在的分支

git merge                                             //从远端仓库提取数据并尝试合并到当前分支
git fetch [alias]                                     //提取更新的数据
git merge [alias]/[branch]                            //将远程仓库的任何更新合并到当前分支

4.15 pull

——下载远程代码并合并,是git fetch和git merge FETCH_HEAD的简写。

git pull [远程主机名] [远程分支名]:[本地分支名]            //将远程主机的分支拉取过来与本地的分支合并

若是本地当前分支可省略。

4.16 push

——上传远程代码并合并

git push [远程主机名] [本地分支名]:[远程分支名]

若本地分支名与远程分支名相同,可省略远程分支名。

git push --force [远程主机名] [本地分支名]:[远程分支名]          //本地版本与远程版本有差异,强制推送
git push  [远程主机名] --delete [远程分支名]                     //删除主机对应的分支

4.17 分支管理

git branch [branchname]                                  //创建分支
git checkout [branchname]                                //切换分支
git branch                                               //列出分支
git branch -d [branchname]                               //删除分支
git merge [branchname]                                   //合并branchname到煮分支

4.18 tag

——标签,可以延后打标签

git tag -a xxx [xxxx]                                 //创建带注解的标签
git tag -a [tagname] -m "xxx"                         //指定标签信息
git tag -s [tagname] -m "xxx"                         //PGP签名标签
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值