【git】git 使用详解

1) git安装与配置

1.1) Git for Windows. 镜像文件下载

Git for Windows. 国内直接从 官网下载 比较困难,需要翻墙。这里提供一个国内的下载站 git下载 ,方便大家下载。

1.2) git配置

配置用户名和邮箱

初次安装git需要配置用户名和邮箱,否则git会提示:please tell me who you are.

 git config --global user.name "xiao"

 git config --global user.email "xx@qq.com"

此用户名和邮箱是git提交代码时用来显示你身份和联系方式的,并不是github用户名和邮箱

配置使用git协议–ssh密钥

git支持https和git两种传输协议,github分享链接时会有两种协议可选:
在这里插入图片描述在这里插入图片描述
git使用https协议,每次pull, push都会提示要输入密码,使用git协议,然后使用ssh密钥,这样免去每次都输密码的麻烦

初次使用git的用户要使用git协议大概需要三个步骤

  1. 生成密钥对
  2. 设置远程仓库(本文以github为例)上的公钥
  3. 把git的 remote url 修改为git协议(以上两个步骤初次设置过以后,以后使用都不需要再次设置,此步骤视以后项目的remote url而定,如果以后其他项目的协议为https则需要此步骤)
1.生成密钥对

大多数 Git 服务器都会选择使用 SSH 公钥来进行授权。系统中的每个用户都必须提供一个公钥用于授权,没有的话就要生成一个。生成公钥的过程在所有操作系统上都差不多。
1.查看本机是否已经有密钥对
SSH 公钥默认储存在账户的主目录下的 ~/.ssh 目录。进去看看:

cd ~/.ssh 进入账号主目录下的 ~/.ssh 目录,例如:C:\Users\Liu.ssh 这里的.shh文件夹
ls 查看文件夹里的子文件

看一下有没有id_rsa和id_rsa.pub(或者是id_dsa和id_dsa.pub之类成对的文件),有 .pub 后缀的文件就是公钥,另一个文件则是密钥

2.假如没有这些文件,甚至连 .ssh 目录都没有,可以用 ssh-keygen 来创建密钥对
ssh-keygen -t rsa -C "your_email@youremail.com" 创建密钥对
在这里插入图片描述

上面生产密钥对过程中建议不要输入密码passphrase,输入passphrase在公钥添加到远程仓库是会用到,git操作的时候也要输入,而且据调查是git为了保证安全没有重新修改密码的选项,这样忘了的话很麻烦。
作为懒蛋一个 和 7秒记忆的我,可以重新生产一个不带密码的密钥对
在这里插入图片描述
然后在GitHub更新一下公钥就ok了

如上如,本地的密钥对就生成

2.添加公钥到你的远程仓库(github)

1、查看你生成的公钥:
cat ~/.ssh/id_rsa.pub 查看公钥
在这里插入图片描述
2.登陆你的github帐户。点击你的头像 —> Settings —> 左栏点击 SSH and GPG keys —> 点击 New SSH key
3、然后你复制上面的公钥内容,粘贴进“Key”文本域内。 title域,自己随便起个名字。

4、点击 Add key。

5、测试 SSH 连接,参考 github 帮助文档
ssh -T git@github.com
在这里插入图片描述
第一处输入yes回车生成known_hosts文件,第二处输入生成密钥对时设置的密码
在这里插入图片描述
如上图,公钥添加到的远程仓库(github)成功

3.修改git的remote url

git remote -v 查看你当前的 remote url
在这里插入图片描述
如果是以上的结果那么说明此项目是使用git协议进行访问的(如果地址是https开头则表示是 https协议)

如果是https协议,可以登录github,复制ssh链接,然后使用命令 git remote set-url 来调整你的url,再用命令 git remote -v 查看一下,url是否已经变成了ssh地址
git remote set-url origin git@github.com:Eva-3288/js-demo.git

配置完后,就可以愉快的使用git fetch, git pull , git push,再也不用输入烦人的密码了

2) 初始化仓库

2.1) 初始化本地仓库,并提交内容到本地

打开 命令行终端
cd d: 进入D盘
mkdir js-demo 新建文件夹 js-demo
cd js-demo 进入文件夹 js-demo
git init 初始化本地仓库,此时仓库是空的

Git会自动为我们创建唯一一个master分支,我们能够发现在当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了

touch README.md 新建一个.md文件 - 说明文档
ls 查看文件夹下文件
git status 查看修改
在这里插入图片描述
git add .
添加全部已经修改的文件,准备commit 提交 该命令效果等同于 git add -A
git commit -m '提交说明'
将修改后的文件提交到本地仓库,如:git commit -m ‘增加README.md说明文档’

2.2)从github创建一个空的仓库

在这里插入图片描述
如果我们在创建远程仓库的时候添加了README和.ignore等文件,我们在后面关联仓库后,需要先执行pull操作
在这里插入图片描述

2.3)连接到远程仓库,并将代码同步到远程仓库

git remote add origin 远程仓库地址 连接到远程仓库
连接到github上远程仓库并为该仓库创建别名origin . 这个别名是自定义的,通常用origin,之后push 或者pull 的时候就需要使用到这个 origin 别名;
如果本地仓库有内容,上传时git pull origin master --allow-unrelated-histories

github 的仓库和本地的没有一个共同的 commit 所以 git 不让提交,认为是写错了 origin ,如果开发者确定是这个 origin 就可以使用 --allow-unrelated-histories 告诉 git 自己确定
因为他们是两个不同的项目,要把两个不同的项目合并,git需要添加一句代码,在 git pull 之后,这句代码是在git 2.9.2版本发生的,最新的版本需要添加 --allow-unrelated-histories 告诉 git 允许不相关历史合并

假如我们的源是origin,分支是master,那么我们需要这样写git pull origin master --allow-unrelated-histories
————————————————
版权声明:本文为优快云博主「lindexi_gd」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/lindexi_gd/article/details/52554159

git remote -v git查看远程仓库地址
git push -u origin master 同步代码到远程仓库
创建一个 upStream (上传流),并将本地代码通过这个 upStream 推送到 别名为 origin 的仓库中的 master 分支上
-u ,就是创建 upStream 上传流,如果没有这个上传流就无法将代码推送到 github;同时,这个 upStream 只需要在初次推送代码的时候创建,以后就不用创建了
在这里插入图片描述

mac 命令行冲突写commit 记录时,操作如下:

  1. press “i” (i for insert)
  2. write your merge message
  3. press “esc” (escape)
  4. write “:wq” (write & quit)
  5. then press enter

参考:
mac命令行问题

3) git- 忽略某个文件(git提交忽略不必要的文件或文件夹)

忽略文件有两种方式: .gitignore 和 .git/info/exclude ; 这两种不同的是 .gitignore 这个文件本身会提交到版本库中去。用来保存的是公共的需要排除的文件。而 .git/info/exclude 这里设置的则是你自己本地需要排除的文件。 他不会影响到其他人。也不会提交到版本库中去。
在这里插入图片描述

使用 .gitignore 文件

在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改 .gitignore 文件的方法。该方法保证任何人都提交不了配置忽略的文件

  1. 进入本地仓库文件夹,右击“Git Bash Here”,然后执行如下命令,在仓库中创建隐藏文件.gitignore:
  1. 因为是点开头,没有文件名,没办法直接在windows目录下直接创建,必须通过右键Git Bash,按照linux的方式来新建.gitignore文件。
  2. .gitignore文件对其所在的目录及所在目录的全部子目录均有效。通过将.gitignore文件添加到仓库,其他开发者更新该文件到本地仓库,以共享同一套忽略规则
touch .gitignore
  1. 用文本编辑器 输入需要忽略的文件或文件名:

1./target/:过滤文件设置,表示过滤这个文件夹
2.*.mdb ,*.ldb ,*.sln表示过滤某种类型的文件
3. /mtk/do.c ,/mtk/if.h 表示指定过滤某个文件下具体文件
4. !*.c , !/dir/subdir/ !开头表示不过滤
5. *.[oa] 支持通配符:过滤repo中所有以.o或者.a为扩展名的文件

注意:
.gitignore只能忽略那些原来没有被track(跟踪)的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的
正确的做法是在每个clone下来的仓库中手动设置不要检查特定文件的更改情况。

git update-index --assume-unchanged  FILE 在FILE处输入要忽略的文件。
如果要还原的话,使用命令:
git update-index --no-assume-unchanged  FILE

.gitignore 还有个有意思的小功能, 一个空的 .gitignore 文件 可以当作是一个 placeholder 。当你需要为项目创建一个空的 log 目录时, 这就变的很有用。 你可以创建一个 log 目录 在里面放置一个空的 .gitignore 文件。这样当你 clone 这个 repo 的时候 git 会自动的创建好一个空的 log 目录了。

配置.git/info/exclude文件

通过配置.git/info/exclude文件来忽略文件。这种方式对仓库全局有效,只能对自己本地仓库有作用,其他人没办法通过这种方式来共享忽略规则,除非他人也修改其本地仓库的该文件。

4) git常用操作

提交:

git status
git add .
git commit -m"备注"
git status
git pull origin v.1.4.1.3.20   //拉取
git status
git push origin v.1.4.1.3.20  //推送

切换新分支:

git fetch
$ git checkout -b v.1.4.1.3.20 origin/v.1.4.1.3.20

切换已有分支:

$ git checkout v.1.9.1.5.25

撤销未提交的修改:

$ git checkout -- .

查看提交记录:

$ git log    (查看所有)
$ git log -5  (查看最近5次)

查看某次的修改内容:

$ git show XXXXXXX
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值