git常用命令解析
程序员文章站
2022-07-01 08:56:16
概念:
工作区(Working directory):将一个文件夹通过git init设置成一个git可以管理的文件夹(即:创建本地仓库)时,这个文件夹里的内容就是工作区。
版...
概念: 工作区(Working directory):将一个文件夹通过git init设置成一个git可以管理的文件夹(即:创建本地仓库)时,这个文件夹里的内容就是工作区。 版本库(repository):在工作区中,有一个.git文件夹,这个.git文件夹就是版本库。 暂存区(stage/index):.git文件夹下的index文件就是暂存区,用来暂时存放工作区中修改的内容。 .git目录中的文件: index 暂存区 HEAD 指向当前分支的一个提交 refs/ 记录着每个分支指向的提交 info/ 指定本项目要忽略的文件 logs/ 记录着git的操作日志 objects/ git对象库,用来存储各种创建的对象以及内容。 命令: 设置git的用户名和邮箱: 命令:git config 1)设置 /etc/gitconfig文件,即操作系统上所有的用户都使用的配置文件: git config --system user.name "jxn" git config --system user.email "jxn@email.com" 2)设置 ~/.gitconfig文件,即当前登录用户使用的配置文件: git config --global user.name "jxn" git config --global user.email "jxn@email.com" 3)设置 repository/.git/config文件,即当前项目中使用的配置。注:必须先cd到一个git repository目录下,才能执行以下命令: git config user.name "jxn" git config user.email "jxn@email.com" 或 git config --local user.name "jxn" git config --local user.email "jxn@email.com" 4)查看git用户名和邮箱: git config user.name git config user.email 说明: 1>如果是在某个git repository下使用该命令,则表示查看当前项目中使用的git用户, 查找顺序:.git/config --> ~/.gitconfig --> /etc/gitconfig 2>如果不是在某个git repository下使用该命令,则表示查看当前登录用户使用的git用, 查找顺序:~/.gitconfig --> /etc/gitconfig 说明:我们一般使用--global参数来设置git的用户名和邮箱。 生成秘钥: ssh-keygen -t rsa -C "jxn@email.com" clone分支: 使用http地址: git clone http://***.git # 参数: # git clone http://***.git clone master分支 # git clone -b 2.0.4 http://***.git clone 指定分支 使用ssh地址: git clone git@127.0.0.1:***/***.git # 参数: # git clone git@127.0.0.1:***/***.git 端口为默认的22端口 # git clone ssh://git@127.0.0.1:39876/***/***.git 端口为非标准的22端口 查看分支: git branch # 查看当前分支 # 参数: # git branch -r 查看远端所有分支 # git branch -a 查看所有分支 # 说明: # * 表示当前所在分支 删除分支: git branch -d 分支名称 更新、提交、回退: git pull # 更新本地代码(如果有冲突需要解决冲突) git commit –m 本次提交的说明 # 将添加到暂存区的修改提交到本地仓库。 # 注意:idea等IDE工具在commit的时候,首先会将工作区的修改add到暂存区,然后再commit到本地仓库。 git push # 将本地仓库中的修改push到远程仓库。 git log # 查看所有人的提交日志 # 参数: # git log --graph 查看分支合并图 # git log --pretty=oneline 查看简易日志信息:版本号+提交说明 git reflog # 查看自己执行过的所有命令 git status # 查看当前状态: # 如果发现红色文件,则表示该文件未进入暂存区。 # 如果发现绿色文件,则表示该文件已经add到暂存区,但是还没有commit。 # 文件的三种状态: # Untracked files: 工作区中未被跟踪的文件,一般是新建的文件。 # Changes not staged for commit: 修改后未add进暂存区的文件。 # Changes to be committed: 修改后并add进暂存区中的文件。 git add # 参数: # git add . 将新增、修改的文件添加到暂存区,不包括删除的文件。 # git add -u 将修改的文件添加到暂存区。 # git add -a 将新增、修改、删除的文件添加到暂存区。 # 说明: # git add fileName 将指定的文件添加到暂存区。 git diff # 参数: # git diff 比较 工作区和暂存区 之间的不同之处 # git diff --cached 比较 暂存区和版本库 之间的不同之处 # git diff HEAD 比较 工作区和版本库 之间的不同之处 git reset 版本号 # 回退到指定的版本(通过git log可以查到版本号:commmit后的那串数字) 注:HEAD指向当前的版本(最近一次的提交),HEAD^指向上一个版本,HEAD^^指向上两个版本。 # 参数: # git reset --soft 版本号 只回退commit的信息,不回退index(暂存区)和本地代码。 # git reset --mixed 版本号 回退commit和index,不回退本地代码,默认使用该策略。 # git reset --hard 版本号 彻底回退到指定的版本,本地代码、commit、index都会回退。 # 说明: # git reset 即 git reset HEAD git reset HEAD fileName # 把暂存区中指定文件的修改回退到工作区中,即unstage。 # eg:把暂存区的修改回退到工作区:git reset HEAD . git checkout -- fileName # 撤销工作区指定文件的修改。 # 说明: # 如果文件没有add到暂存区,则checkout后,工作区的该文件和版本库中的该文件相同。 # 如果文件已经add到暂存区,但是还没有checkout到本地仓库,则revert后,工作区的该文件和暂存区的该文件相同。 远程仓库的相关操作: git remote # 查看远程库列表 # 参数: # git remote -v 查看远程库列表,并且显示clone的URL。 git remote add RepositoryName gitURL # 添加远程仓库。 git remote show RepositoryName # 查看远程仓库的信息。 git remote rm # 删除远程仓库。 git remote rename oldName newName # 给远程仓库重命名。
上一篇: 阿里云ECS屏蔽25端口,官方建议使用465 SSL端口发送邮件
下一篇: 多线程上下文切换