git基础入门以及git常用命令

简介: git是一个开源的分布式版本控制系统,用于敏捷高效的处理或大或小的项目,更是一个内容管理系统(CMS),工作管理系统。git是分布式的,svn不是git把内容按元数据方式存储,而svn是按照文件git没有一个全局的版本号,而svn有git的内容完整性要优于svn。

1、git基础入门


1.1 基础概念


git是一个开源的分布式版本控制系统,用于敏捷高效的处理或大或小的项目,更是一个内容管理系统(CMS),工作管理系统。


git和snv差异


git是分布式的,svn不是

git把内容按元数据方式存储,而svn是按照文件

git没有一个全局的版本号,而svn有

git的内容完整性要优于svn。

1.2 安装


window平台安装,安装包下载地址


Git for Windows


安装时候按照提示步骤,一步一步安装就行了。安装完成就可以使用git工具,还有一个图形界面的项目管理工具。


图形管理工具

e70d0c2b16e505acd3a82179e9cf66b.png

git命令行

9967ef06bafc44602a4f460569dfcc9.png


1.2 git配置


git提供了一个git config的工具,用来配置读取相应的工作环境变量


在 Windows 系统上,Git 会找寻用户主目录下的 .gitconfig 文件。主目录即 $HOME 变量指定的目录,一般都是 C:\Documents and Settings\$USER。


1、配置个人的用户名和邮件


使用了global选项,以后所有的项目都会默认使用这里配置的用户信息

git config --global user.name 'youname'
git config --global user.email test@163.com

f7b0ee9e6833f4e494f6916a1eebd08.png


2、查看配置信息

git config --list //所有的配置信息都会列出来
git config user.name //查看姓名
git config user.email //查看邮箱

780062aa91ec51780baf5f3dfc7ee91.png


3、工作流程图

dcba310c608c8f5516d8876eef3fceb.png


b24f41953350ab29cbba3ad33a96fb3.png


1.3 git工作区、暂存区、版本库概念


  • 工作区:电脑里面能看到的目录
  • 暂存区:英文stage或者index,在.git目录下的index文件,暂存区也叫索引。
  • 版本库:工作区有个隐藏的目录.git,这个不算工作区,而是git的版本库
  • d2f3170e9ef1d9407c0d85618d4bb34.png



2、git基本操作


2.1 git初始化:git init


git使用init来初始化仓库,因为很多命令都需要在仓库里面使用,因此首先需要初始化,初始化以后,仓库下回多出来一个.git目录(隐藏文件,可在文件夹设置里面把隐藏文件显示),.git目录下包括了所有的元数据。如果需要某个文件当做仓库,只需要再当前目录下,在执行git init命令。

a52caaf8b9daa25efe558cd945aff32.png


2.2 创建仓库:git init 【directory】


使用指定目录作为git仓库,执行这个命令,会生成一个newrepo的文件,作为git仓库,newrepo里面也有一个.git目录

6e6e43f1234ebf1d7d0f2e145cb10cb.png


2.3 拷贝(克隆)项目:git clone [url]


使用git clone从仓库中拷贝代码,也可以克隆项目到指定文件夹。url是git仓库地址,directory本地目录

git clone [url] 
git clone [url] [directory]

2.4 查看项目的当前状态:git status


查看当前项目的状态,更改了那些文件。如果你新建了文件,添加了文件到缓存,修改了文件,想知道有没有提交,都可以执行这个命令,来查看相关的文件信息,和你的操作轨迹。

git satus

2.5 新建文件等文件操作命令:touch [filename]


touch a // 创建一个a文件
echo 1234 >> a // 把1234这个内容放入a文件
cat a // 打开a文件 读取出a文件中的内容
mkdir test // 创建test文件夹
rm 文件名 // 删除文件

2.6: 降文件添加到缓存区:git add [filename]


将文件添加到缓存,如果是多个文件,在命令行后面新增文件名即可。

git add test.js//把test.js提交到缓存
git add test.js one.html//把test,one提交到缓存区
git add .//把所有文件提交到缓存区

2.7 提交文件到本地仓库:git commit


执行git commit将缓存区内容添加到仓库中。每次提交都会记录你的名字与邮箱,所以要提前设置一下。-m添加注释

git commit //提交到仓库
git commit -m '注释内容' //提交到仓库,添加备注信息
git commit -am ''//提交到仓库,添加备注信息,文件已经放入仓库,直接提交添加备注,不用add,commit。


2.8 提交代码到远程仓库:git push


git push //把文件上传到远程仓库

2.9 更新代码,从远程仓库拉取代码:git pull


git pull //从远程仓库拉取代码,类似svn的update

2.10 取消已缓存的内容:git reset head /[filename]


取消赢缓存的内容(git add提交到缓存里面的文件),


git reset head,取消所有缓存的内容(当前版本);


git reset [filename],取消指定文件的内容。取消以后,可执行status查看文件状态;

git reset head
git reset test.js


89b7f87756be645621f429f50682775.png

2.11 删除文件:git rm 【file】


从git里面移除某个文件,执行git rm [file]命令;


如果要删除暂存区的的文件,则执行git rm -f [file]命令;


如果要删除暂存区的文件,但是又要保留在工作目录中,执行 git rm --cached [file];


从工作区删除删除目录,git rm -r [directory ]

git rm test.js
git rm -f test.js
git rm --cached test.js
git rm -r test 

2.12、比较文件:git diff


如果文件已经修改了,还么有提交,可以执行 git diff命令,来查看差异

2.13 查看提交日志:git log/relog


查看命令历史,查看仓库的操作历史

git log
git reflog
git log -n//查看近期提交的n条记录
git log -p//查看提交的详细记录

2.14 快速打开图形操作界面:gitk


gitk

2.15 查看文件信息:ls


1. ls // 查看当前路径下面的所有文件名
2. ls 文件夹名 // 查看对应文件夹中的内容
3. ls -l // 拉出最近git提交记录以及对应修改的文件名
4. ls -l -a // 拉出最近git提交记录以及对应修改的文件名,隐藏的文件也会显示

2.16 文件目录操作:cd


1. cd ~ // 将工作路径快速切换到root
2. cd - // 将工作路径切换到上一状态
3. cd ../ // 切回到上一个工作路径
4. cd 文件夹名 // 进入某个目录
5. cd / // 进入根目录

2.17 常见分支操作:


git branch //列出本地所有分支
git branch 分支名 // 新建分支
git branch // 查看当前所有分支
git checkout 分支名 // 检出分支
git checkout -b 分支名 // 创建并切换分支
git checkout commitId 文件名(文件路径下的文件名) 还原这个文件到对应的commitId的版本
(例如src/page/attendance/attendanceSum.vue我想把它还原到2个版本之前 首先git log src/page/attendance/attendanceSum.vue找到对应想要还原的版本
复制版本提交的commitID 然后执行git checkout commitID src/page/attendance/attendanceSum.vue
这样就把attendanceSum.vue这个单个文件 还原到了对应版本)
git branch -v // 查看分支以及提交hash值和commit信息
git merge 分支名 // 把该分支的内容合并到现有分支上
git branch -d 分支名 // 删除分支
git branch -D 分支名 // 强制删除 若没有其他分支合并就删除 d会提示 D不会
git branch -m 旧分支名 新分支名 // 修改分支名
git branch -M 旧分支名 新分支名 // 修改分支名 M强制修改 若与其他分支有冲突也会创建(慎用)
git branch -r // 列出远程分支(远程所有分支名)
git branch -a // 查看远程分支(列出远程分支以及本地分支名)
git fetch // 更新remote索引
git push -u origin 分支名 // 将本地分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push 也可解决 git建立远程分支关联时出现fatal ... upstram的问题

2.17 标签操作:git tag


git tag // 查看列出所有打过的标签名
git tag -d 标签名 // 删除对应标签
git tag 标签名字 // 在当前仓库打个标签
git tag foo -m "message" // 在当前提交上,打标签foo 并给message信息注释
git tag 标签名 哈希值 -m "message" // 在某个哈希值上打标签并且写上标签的信息
git tag foo HEAD~4 // 在当前提交之前的第4个版本上 打标签foo
git push origin --tags // 把所有打好的标签推送到远程仓库
git push origin 标签名 // 把指定标签推送到远程仓库
git stash // 把暂存区的内容 暂时放在其他中 使暂存区变空
git stash list // 查看stash了哪些存储
git stash pop // 将stash中的内容恢复到当前目录,将缓存堆栈中的对应stash删除
git stash apply // 将stash中的内容恢复到当前目录,不会将缓存堆栈中的对应stash删除
git stash clear // 删除所有缓存的stash
git pull --tags // 把远程仓库的标签也拉取下来
git push origin :refs/tags/远程标签名 // 删除远程仓库的标签



2.18 远程同步操作


# 下载远程仓库的所有变动
$ git fetch [remote]
# 显示所有远程仓库
$ git remote -v
# 显示某个远程仓库的信息
$ git remote show [remote]
# 增加一个新的远程仓库,并命名
$ git remote add [shortname] [url]
# 取回远程仓库的变化,并与本地分支合并
$ git pull [remote] [branch]
# 上传本地指定分支到远程仓库
$ git push [remote] [branch]
# 强行推送当前分支到远程仓库,即使有冲突
$ git push [remote] --force
# 推送所有分支到远程仓库
$ git push [remote] --all

3、提交代码步骤


3.1 查看当前状态:git status


第一步,查看当前文件状态,git status,查看修改了那些文件,红色字体就是修改的文件

f204d1b6d58c7a73598759cd38063a0.png

3.2 添加文件到缓存区:git add .


如果one.vue,test.vue你都都想提交执行git add .

如果只提交一个文件,执行 git add one.vue,提交指定的文件。

再执行 status看一下,是否全部提交成功。

9654606ee910c4452151bddf8869ac0.png


3.3 提交代码到本地仓库:git commit -m 'xx'


提交代码(提交已经加到缓存区里面的代码)到本地仓库

d5c90e825a47fa43c12495cd0dc3306.png

3.4 从远程主机更新代码:git pull [主机] [分支]


取回远程主机某个分支的更新,再与本地的指定分支合并

7f059661feafcdb93d0bd576c629c3c.png

3.5提交代码到远程仓库:git push [主机] 【分支】


4a6dccebe76ad8f9b97d92eacc71505.png



目录
相关文章
|
30天前
|
缓存 数据可视化 网络安全
Git命令大全
Git命令大全
68 1
|
30天前
|
Shell 网络安全 开发工具
GIT常用命令
GIT常用命令
|
1天前
|
存储 Linux 开发工具
Git【入门】这一篇就够了
Git【入门】这一篇就够了
9 0
|
7天前
|
存储 安全 项目管理
Git项目管理——Git常用命令汇总(五)
Git项目管理——Git常用命令汇总(五)
13 1
|
28天前
|
网络安全 开发工具 git
版本管理 git 常用命令
版本管理 git 常用命令
26 1
|
30天前
|
开发工具 git 开发者
Git入门:轻松掌握版本控制的艺术
【5月更文挑战第13天】Git是流行的版本控制系统,适合各种规模的项目。本文引导读者入门Git,学习版本控制艺术。内容涵盖Git简介、安装配置、基础操作(如初始化、添加文件、提交、查看状态和历史)、分支管理、协作开发(克隆、推送、拉取)及高级用法,如标签管理、子模块和版本比较。遵循最佳实践,如频繁提交、有意义的提交信息和合理分支管理,可提升开发效率。
|
30天前
|
存储 Linux 开发工具
Git 分布式版本控制系统基本概念和操作命令
Git 分布式版本控制系统基本概念和操作命令
129 0
|
30天前
|
算法 Java BI
云效产品使用报错问题之平台上导出的统计数据和 git 中使用命令导出的数据统计都对不上,如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
30天前
|
数据可视化 开发工具 git
Git代码版本管理入门
Git代码版本管理入门
|
30天前
|
存储 开发工具 git
Git大揭秘:掌握开发者必备的常用命令手册
Git大揭秘:掌握开发者必备的常用命令手册
20 0
Git大揭秘:掌握开发者必备的常用命令手册