Git总结

Git总结,第1张

Git总结 Git总结 附:SSH配置 Linux命令 Git配置

所有的配置文件,其实都保存在本地!

#查看系统config        git config --system --list  
#查看当前用户global配置 git config --global  --list

Git相关的配置文件位置:

#Windows

1.Gitetcgitconfig

Git 安装目录下的 gitconfig --system 系统级

2.C:UsersAdministrator .gitconfig

只适用于当前登录用户的配置 --global 全局

#MAC

1.此处为 open ~/.gitconfig

2.MAC隐藏文件可视化

defaults write com.apple.finder AppleShowAllFiles TRUE
DEA中集中Git

1.新建项目,绑定git

将我们远程的git文件目录拷贝到项目中即可!

2.使用IDEA *** 作git,提交项目

方案一:Version Control 版本控制 日志(左下角)

可以直接用命令行输入指令git add . git commit git push

方案二:Commit Changes 提交界面中勾选上传文件即为git add指令 commit为提交到本地仓库 (右上角图标) Tips:取消面板设置勾选

如果文件提交后要修改,修改以后右键文件添加到暂存区,git commit,git push。

3.提交测试

设置用户名与邮箱(用户标识,必要)

当你安装Git后首先要做的事情是设置你的用户名称和e-mail地址。这是非常重要的,因为每次Git提交都会使用该信息。它被永远的嵌入到了你的提交中:

创建与查看
git config --global user.name "kuangshen"  #名称
git config --global user.email 24736743@qq.com   #邮箱
删除用户名与邮箱
git config --global --unset user.name 删除用户名
git config --global --unset user.email 删除邮箱

只需要做一次这个设置,如果你传递了–global 选项,因为Git将总是会使用该信息来处理你在系统中所做的一切 *** 作。如果你希望在一个特定的项目中使用不同的名称或e-mail地址,你可以在该项目中运行该命令而不要–global选项。总之–global为全局配置,不加为某个项目的特定配置。

Git代码
仓库的建立
# 在当前目录新建一个Git代码库
$ git init
# 新建一个目录,将其初始化为Git代码库
$ git init [project-name] //比如可以在桌面上创建一个文件夹
# 下载一个项目和它的整个代码历史
$ git clone [url]

使用步骤
#git status [filename] //文件名称 查看指定文件状态
#git status 查看所有文件状态
# git add .  添加所有文件到暂存区
# git commit -m "消息内容"   提交暂存区中的内容到本地仓库 -m 提交信息
# git push 上传到远程仓库

时光倒流:
git log //现实所有提交过的版本信息
git reflog//不仅可以看到版本信息也可以看到commit记录以及reset *** 作记录
git reset --hard 版本代码//可以回到对应版本

分支
本地
git branch 分支名 //新建分支
git branch -v   //查看分支
git checkout 分支名 //切换分支
git merge 分支名 //把指定的分支合并到当前分支上
git branch -d 分支名 //删除分支
远程
git branch -r //列出所有远程分支
git push origin --delete 分支名 //删除远程分支

拉取远程仓库
git pull = git fetch + git merge
1、将远程指定分支 拉取到 本地指定分支上:
git pull origin <远程分支名>:<本地分支名>
2、将远程指定分支 拉取到 本地当前分支上:
git pull origin <远程分支名>
3.将与本地当前分支同名的远程分支拉取到本地当前分支上
git pull //(Alreadly up to data最新)
方案二
git fetch 拉取远端代码
git merge 分支名 //把指定的分支合并到当前分支

后续问题
1.当文件已经上传后如何修改:可以直接在工作目录下修改,然后查看状态会有修改的信息,重复上传步骤。

2.当文件名被修改如何上传:
# 改名文件,并且将这个改名放入暂存区
git mv [file-original] [file-renamed] //源文件名 修改后的文件名
Git分支

在版本控制过程中,同时推进多个任务,我们可以创建每个任务的单独分支,分支可以理解为副本,开发自己的分支的时候不会影响主线分支的运行(分支底层就是指针的引用)

本地
git branch 分支名 //新建分支
git branch -v   //查看分支
git checkout 分支名 //切换分支
git merge 分支名 //把指定的分支合并到当前分支上
git branch -d 分支名 //删除分支

远程
git branch -r //列出所有远程分支
git push origin --delete 分支名 //删除远程分支
分支合并冲突
分支合并时,两个分支在同一个文件的同一个位置有两套完全不同的修改,GIt无法替我们决定使用哪一个,必须人为决定新代码内容

忽略文件的配置
忽略某些文件时,需要编写.gitignore;(gitee远程仓库在创建时可以选择)
.gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理!
忽略文件的原则是:
忽略 *** 作系统自动生成的文件,比如缩略图等;
忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。

在gitee上创建了自己的仓库clone到本地,将文件添加到.git的配置文件之下即可git push上传到自己的仓库当中

Git流程 Git本地有三个工作区域:

工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory)。

如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。

文件在这四个区域之间的转换关系如下:

Workspace:工作区,就是你平时存放项目代码的地方Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息(暂存)Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换

1、在工作目录中添加、修改文件;

2、将需要进行版本管理的文件放入暂存区域;

3、将暂存区域的文件提交到git仓库。

因此,Git管理的文件有三种状态:

已修改(modified),已暂存(staged),已提交(committed)

文件的四种状态

版本控制就是对文件的版本控制,要对文件进行修改、提交等 *** 作,首先要知道文件当前在什么状态,不然可能会提交了现在还不想提交的文件,或者要提交的文件没提交上。

Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件Modified: 文件已修改, 仅仅是修改, 并没有进行其他的 *** 作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改 !Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified 配置SSH以及相关问题

步骤
1.cd ~/.ssh //看电脑中是否存在ssh文件
================================
存在:
open ~/.ssh
cat id_rsa.pub    //打开id_rsa.pub文件,复制密钥
不存在:
ssh-keygen -t rsa //创建ssh文件 后面一直回车即可 ras加密官方推荐
open ~/.ssh
cat id_rsa.pub    //打开id_rsa.pub文件,复制密钥
效果图如下:
zoumaoji@zoumaojideMacBook-Pro ~ % ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/zoumaoji/.ssh/id_rsa):
Created directory '/Users/zoumaoji/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/zoumaoji/.ssh/id_rsa
Your public key has been saved in /Users/zoumaoji/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:5/0spzQACdZjvehRtFSWh4eRnsCqAd04y+A3T50swpI zoumaoji@zoumaojideMacBook-Pro.local
The key's randomart image is:
+---[RSA 3072]----+
|     .o+ +o.+*   |
|    o.+.=o=o= o  |
|   . * +oB.= +   |
|    E O *.= o    |
|     o OSoo      |
|      . oo o     |
|          . +    |
|           ..+.  |
|            .+o  |
+----[SHA256]-----+

zoumaoji@zoumaojideMacBook-Pro ~ % ssh -keygen -t rsa

报错:Bad escape character ‘ygen’.

解决:ssh-keygen之间是没有空格的

添加公钥

GItee网站添加上id_rsa.pub 中的密钥

测试公钥
ssh -T git@gitee.com
运行图:
zoumaoji@zoumaojideMacBook-Pro ~ % ssh -T git@gitee.com
The authenticity of host 'gitee.com (180.97.125.228)' can't be established.
ED25519 key fingerprint is SHA256:+ULzij2u99B9eWYFTw1Q4ErYG/aepHLbu96PAUCoV88.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'gitee.com' (ED25519) to the list of known hosts.
Hi JanoandBiscuityeah! You've successfully authenticated, but GITEE.COM does not provide shell access.

小坑

高高兴兴继续git却发现还是需要输入账户和密钥

使用命令

git -T git@gitee.com如果出现You’ve successfully authenticated, but GITEE.COM does not provide shell access.,说明密钥没问题那么这个问题便是发生在我们在克隆仓库的时候采用的是 https 的链接 git clone https://gitee.com/Name/project.git解决办法就是使用ssh方式克隆 git clone git@gitee.com:Name/project.git对于已经克隆的仓库修改 .git/config 文件中 url=https://gitee.com/Name/project.git 为 url=git@gitee.com:Name/project.git 常用的Linux命令

cd : 改变目录。
cd . . 回退到上一个目录,直接cd进入默认目录
pwd : 显示当前所在的目录路径。
ls(ll):  都是列出当前目录中的所有文件,只不过ll(两个ll)列出的内容更为详细。
touch : 新建一个文件 
mkdir:  新建一个目录,就是新建一个文件夹。
rm:  删除一个文件, rm index.js 就会把index.js文件删除。
rm -r :  删除一个文件夹, rm -r src 删除src目录
## rm -rf / 切勿在Linux中尝试!删除电脑中全部文件!
mv 移动文件, mv index.html src index.html 是我们要移动的文件, src 是目标文件夹,当然, 这样写,必须保证文件和目标文件夹在同一目录下。
reset 重新初始化终端/清屏。
clear 清屏。
history 查看命令历史。
help 帮助。
exit 退出。
#  表示注释

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5720208.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存