概述
目录
- 一、git安装与操作
- 二、先配置用户名和密码
- 二、建立本地仓库与远程仓库连接并推送
- 三、本地库/工作区/暂存区/远程仓库的概念
- 四、本地库基本信息设置概念补充
- 1、本地库初始化
- 2、基本配置设置
- 五、工作区代码到本地库Git操作命令
- 1、添加文件
- 2、修改文件
- 3、删除文件
- 六、本地仓库推送到远程仓库
- 1、建立与远程仓库连接之初始化本地目录后与远程仓库连接之方式一
- 2、建立与远程仓库连接之Git克隆操作方式二
- 3、邀请他人加入团队
- 4、推送本地工作区的仓库到远程仓库中
- 5、拉取远程仓库
- 6、解决冲突
- 7、跨团队协作
- 七、查看版本回退与历史
- 1、查看历史记录
- 2、版本前进后退的操作方式
- 3、reset命令的三个参数对比
- 八、删除文件找回
- 九、比较文件差异
- 十、分支
- 1、分支基本命令
- 2、解决分支冲突
- 十一、Github项目代码托管平台、维护远程库
- 1、团队内部操作:同公司代码操作
- 2、跨团队操作:不是同公司的代码操作
- 十二、SSH登录
- 1、操作步骤
一、git安装与操作
- windows下git安装
- linux下安装git
https://github.com/git/git/tags cd /usr/local wget https://github.com/git/git/archive/refs/tags/v2.36.0.tar.gz tar -zxvf v2.36.0.tar.gz yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker cd git-2.36.0 make prefix=/usr/local/git install make && make install git --version ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # 将git指令添加到bash中 vi /etc/profile # 在最后一行添加 export PATH=$PATH:/usr/local/git/bin # esc 然后:wq,让该配置文件立即生效 source /etc/profile ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # 配置用户连接 git config --list git config --global user.name Shirmay git config --global user.email ********@qq.com git config --global ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # 配置ssh登录下载 cd ~ ssh-keygen -t rsa -C ********@qq.com cd .ssh cat id_rsa.pub # 复制id_rsa.pub文件内容,登录github>settings>SSH and GPG keys # New SSH key输入复制的密钥信息,创建一个密钥 # 然后到一个空的文件夹下比如code文件夹下 git clone git@github.com:shirmay/commprj.git
- linux下出现
fatal: could not create work tree dir ‘xxxx’: Permission denied
:sudo chmod o+w 当前目录的名字
二、先配置用户名和密码
- 显示当前的配置:
git config --list
- 设置用户名:
git config --global user.name Shirmay1
- 设置用户名邮箱:
git config --global user.email ********@qq.com
- 系统用户级别设置:
git config --global
- 如果出现每次上传文件有账号密码的提示输出的话,就使用
ssh登录
来解决每次push文件时再次输入账号和密码的步骤,具体步骤见末尾 - 本地库、远程库github基本工作流程图
二、建立本地仓库与远程仓库连接并推送
-
首先github先建立一个新的仓库
-
仓库建立好后会跳出如下界面,之后本地新建一个空白文件夹,打开git bash窗口然后直接复制如下命令,然后敲个回车即可,此时完成了一次上传文件的步骤
-
如上第一次提交git的时候,用了
-u
参数,之后可直接用git push代替git push -u
,即git push origin master,比如,接下来新传一个dada.xlsx,大概的执行命令如下,先git add 然后 git commit 然后 git push origin main
,git push 的 -u 参数含义
三、本地库/工作区/暂存区/远程仓库的概念
- 本地库、远程库github基本工作流程图
- 1、工作区:写代码等
rm -rf test.py
: 删除工作区的某个文件git status
:查看工作区和暂存区的区别git diff
:显示工作区与暂存区的区别
- 2、暂存区:临时存储(
git add
提交所有文件相关命令)git add .
:提交所有文件至暂存区git add test.py
:提交具体的某个文件到暂存区git add file_floder/
:提交具体的某个文件夹到暂存区git rm --cached test.py
:删除暂存区的某个文件git mv [file-original] [file-renamed]
:给某个文件改名
- 3、本地仓库:最终确定的文件保存到仓库(
git commit -m
相关命令)git commit -m '描述内容' test.py
:描述某个文件提交信息git commit -m '描述内容' file_floder/
:描述某个文件夹提交信息git rm test.py
: 删除本地仓库中的某个文件
- 4、远程仓库:github等,指定服务器上的仓库
git init
,git remote add origin 'https://github.com/MoreMoreLearn232.git'
:第一种建立与远程仓库连接方式:先初始化本地目录,然后建立与远程仓库的连接,其中https://github.com/MoreMoreLearn232.git是具体地址,origin是对这个地址起的别名git clone https://github.com/Spider_Case.git
:第二种建立与远程仓库连接方式:直接建一个空文件夹,然后使用clone命令即可git pull origin master
:相当于从远程获取最新版本并merge到本地git push origin master
:提交本地仓库的所有改动至远程仓库,(ps:是推送到origin这个别名地址上的master分支上)
四、本地库基本信息设置概念补充
1、本地库初始化
- 本地库初始化:创建文件夹,并在文件夹内初始化:git init ;
.git目录中存放的是本地库相关的子目录和文件,不要删除与胡乱修改
==
2、基本配置设置
- 设置用户名:
git config --global user.name Shirmay
- 设置用户名邮箱:
git config --global user.email ******@qq.com
- 查看配置信息:
git config --list
- 命令分两种,一般我们设置系统级别就够了:
- 系统用户级别设置:
git config --global
- 项目级别/仓库级别设置(暂时不用):git config
- 系统用户级别设置:
五、工作区代码到本地库Git操作命令
1、添加文件
此时都未推送到远程库,推送到远程库需要执行push命令
2、修改文件
- 添加文件: touch test.py
- 提交到暂存区:
git add test.py
- 编辑文件: vi test.py (保存退出:wq)
- 查看文件内容: cat test.py
- 编辑文件后再次提交到暂存区:
git add test.py
- 提交到仓库中:
git commit -m "修改了文件并提交到仓库了" test.py
- 或者是git commit test.py 进入vim编辑器编辑内容(较烦)
注意:前面修改后git add>git commit 可以不经过git add直接使用git commit -a提交;但是不经过暂存区提交的修改,就不能撤销了
。
3、删除文件
- 删除工作区本地文件:
rm -rf test.py
- 删除暂存区文件:
git rm --cached test.py
- 删除本地仓库中文件:
git rm test.py
- 提交信息:
git commit -m '第一次通过git删除文件' test.py
六、本地仓库推送到远程仓库
1、建立与远程仓库连接之初始化本地目录后与远程仓库连接之方式一
- 本地新建一个目录并初始化:git init
- github建立一个远程仓库如Spider_Case333
- git remote -v:查看本地仓库与远程连接状态
git remote add origin [远程仓库地址]
:本地目录初始化git init后,与远程仓库连接git push -u origin master
:将本地仓库内容推送到远程仓库(ps:是推送到origin这个别名地址上的master分支上)
2、建立与远程仓库连接之Git克隆操作方式二
- 将远程仓库(github对应的项目)复制到本地:
git clone [仓库地址]
- 注意:clone操作,本地只需建一个空文件夹即可,且不需要初始化。
- 效果:clone操作后会自动在该文件夹初始化、与远程仓库建立连接(即创建远程origin地址别名)、将远程仓库完整复制下来
git clone https://github.com/Shirmay1/Spider_Case.git
3、邀请他人加入团队
- 在项目的settings里面添加他人账号
- 然后复制邀请的链接发送给他人
4、推送本地工作区的仓库到远程仓库中
- git远程仓库实际上是保持在服务器上的Git仓库文件
- 注意:团队合作的时候,由于远程端的更改多于你的本地端,一般先pull然后再push,如果直接强制push会让远程端的代码和本地的保持一致,远程端多的部分就会丢失
- 命令:
git push [别名] [分支]
: 如git push origin master
5、拉取远程仓库
- pull = fetch(读取) + push (推送)
git pull [别名] [分支]
:如git pull origin master
相当于是从远程获取最新版本并merge到本地git fetch [远程库地址别名][远程分支名]
:相当于是从远程获取最新版本到本地,不会自动合并git merge [远程库地址别名/远程分支名]
:合并数据- 流程案例:
git fetch origin master
:首先从远程的origin的master主分支下载最新的版本到origin/master分支上git log -p master…origin/master
:然后比较本地的master分支和origin/master分支的差别git merge origin/master
:最后进行合并
6、解决冲突
- 如果不是基于GitHub远程库最新版本所做的修改,不能推送,必须先拉取
- 拉取下来后进入冲突状态,则按照“分支冲突解决”操作解决即可
7、跨团队协作
- 首先fork别人的项目
- 然后clone到自己的本地,进行本地修改,并推送到远程
- 接着pull requests,并create pull requests告知别人做了何处修改
- 跨团队操作视频
七、查看版本回退与历史
1、查看历史记录
- git log (多屏显示控制方式:空格向下翻页,b向上翻页,q退出)
- git log --pretty=oneline
- git log --oneline
- git reflog (HEAD@{移动到当前版本需要的步数})
2、版本前进后退的操作方式
- 基于索引值操作(推荐): git reset --hard e2b4966
- 使用^符号,只能往后退:git reset --hard HEAD^^^ (一个^符号代表后退一步)
- 使用~符号,只能往后退: git reset --hard HEAD~3(数字代表后退几步)
3、reset命令的三个参数对比
- soft参数 :仅仅在本地库移动HEAD指针:git reset --soft 93597bc
- mixed参数:在本地库移动HEAD指针,并重置暂存区:git reset --mxied 93597bc
- hard参数:在本地库移动HEAD指针,重置暂存区和工作区
八、删除文件找回
- 前提:删除前,文件存在时的状态提交到了本地库
- 操作: git reset --hard [指针位置]
- 删除操作已经提交到本地库:指针位置指向历史记录
- 删除操作尚未提交到本地库:指针位置使用HEAD
九、比较文件差异
- git diff[文件名]
- 将工作区中的文件和暂存区进行比较
- 将工作区中的文件和暂存区进行比较
- git diff[本地库中历史版本][文件名]
- 将工作区中的文件和本地库历史记录比较
- 将工作区中的文件和本地库历史记录比较
- git diff HEAD
- 不带文件名比较多个文件
- 不带文件名比较多个文件
十、分支
1、分支基本命令
-
git branch -v 查看当前所有分支
-
git branch [分支名] 创建一个新的分支
-
git checkout [分支名] 切换到某个分支上, 其中根据当前命令行显示可以看出在哪个分支下面
-
合并分支:目的是把其余的小分支合并到主流的master分支上,所以第一步先切换到master分支上,然后再git merge 另一个分支名(其中子分支也一定是经过了git add git commit的操作了)
- 第一步:git checkout [被合并的分支名]切换到接受修改的分支上(被合并,增加新内容)
- 第二步:git merge [有新内容的分支名] 执行merge命令
2、解决分支冲突
- 第一步:编辑文件,删除特殊符号 ,具体视频链接
- 第二步:把文件修改到满意的程度,保存退出
- 第三步:git add [文件名]
- 第四步: git commit -m “日志信息” (注意此时commit一定不能带具体文件名)
十一、Github项目代码托管平台、维护远程库
1、团队内部操作:同公司代码操作
git remote add origin https://github.com/Shirmay/Spider_Case333.git
git pull --rebase origin master
git push -u origin master
2、跨团队操作:不是同公司的代码操作
- 视频学习链接
十二、SSH登录
- ssh登录可以解决每次push文件时再次输入账号和密码的步骤
- ssh登录视频
1、操作步骤
-
进入当前用户的家目录: cd ~
-
删除.ssh目录 :rm -r .ssh
-
运行密钥生成.ssh密钥目录:ssh-keygen -t rsa -C ********@qq.com
-
进入.ssh目录查看文件列表:cd .ssh
-
查看id_rsa.pub内容:cat id_rsa.pub
-
复制id_rsa.pub文件内容,登录github>settings>SSH and GPG keys
-
New SSH key输入复制的密钥信息
-
github已建立好项目
,可以通过git clone的方法复制对应项目的ssh的链接,直接新建一个空的文件夹,然后在当前空文件夹下,输入git clone git@github.com:Shirmay1/yyj.git
,此时线上的项目被拉取下来
最后
以上就是壮观月饼为你收集整理的github之git命令相关使用的全部内容,希望文章能够帮你解决github之git命令相关使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复