Git学习笔记

Git是一个开源的分布式版本控制系统,可以有效、高速地进行项目版本管理。本文记录使用git工具时的一些常用命令以及它们的作用。

全局设置

设置用户名

git config --global user.name "user_name"

设置全局用户名,当推送到远程仓库之后会显示文件更改者的用户名。

设置邮箱

git config --global user.email "user_email"

设置全局邮箱。

设置http代理

git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy https://127.0.0.1:7890

使用全局http代理。

更改PostBuffer

git config --global http.postBuffer 524288000  
git config --global https.postBuffer 524288000  

防止push时文件过大失败。

生成SSH密匙

ssh-keygen -t rsa -C "useremail"

输入指令后,一直回车即可,默认生成路径在C:\Users\xxx\.ssh里面。用文本打开id_rsa.pub,将里面的内容添加到github—头像—settings—SSH and GPG keys—New SSH key(Authentication Key)里面。
多账号/单个密匙名称自定义,需要配置config文件,具体看下文config配置介绍。

多账户密匙

1.使用上述指令生成对应账户密匙,密匙名称生成时自定义。假设生成id_1388_rsa和id_19399_rsa两个密匙账户。
2.执行指令ssh-agent bash
3.执行指令ssh-add ~/.ssh/id_1388_rsa,添加到SSH agent中。
4.执行指令ssh-add ~/.ssh/id_19399_rsa,添加到SSH agent中。
5.在路径C:\Users\xxx\.ssh\下添加config文件(UTF8格式,无文件后缀)。
6.config文件内容配置以下参数。

# 该文件用于配置私钥对应的服务器
# Host 名称自定义
# IdentityFile 对应密匙文件

# Default user
# SSH链接使用 git@FeiyuCode:FeiyuCode/MYTEST.git
Host FeiyuCode
HostName github.com
User git
#PreferredAuthentications publickey
IdentityFile ~/.ssh/id_1388_rsa

# Second user
# SSH链接使用 git@Feiyuacg:Feiyuacg/MYTEST.git
Host Feiyuacg
HostName github.com
User git
#PreferredAuthentications publickey
IdentityFile ~/.ssh/id_19399_rsa

7.测试ssh -T FeiyuCode,提示生成known_hosts文件,输入yes继续。提示Hi XXX! You’ve successfully authenticated, but GitHub does not provide shell access.代表成功。
8.测试ssh -T Feiyuacg,提示同上。

基础使用

克隆到本地

git clone [url]

克隆远程仓库的文件到本地。添加参数-b选择分支。

git初始化

git init

初始化为一个git仓库,会生成一个git文件夹。

查看已更改文件

git status

可以查看工作区的修改是否添加到缓存区。

添加更改文件到缓存区

git add filename

将工作区的修改添加到缓存区。add为添加,rm为删除, git add -A  会更改所有变化的文件。

将缓存区内容提交到本地仓库

git commit -m "备注"

将缓存区的内容提交到本地仓库,并且添加备注,会产生一次哈希记录(版本号),可以使用git log查看。

推送到远程仓库master分支

git push origin master

参数-f为强制推送,会影响其他人的pr提交,非必要情况不推荐使用。git push origin dev:master,不同分支推送。

查看历史记录

git log

查看历史记录,可以获取一些提交信息,可以根据哈希值(版本号)进行代码回溯等操作。

回溯操作

git reset --hard 目标版本号

恢复到之前某个提交的版本,且那个版本之后提交的版本我们都不要了,就可以用这种方法。由于回溯导致版本低于远程仓库版本,所以需要使用 git push -f 来强制推送。

git revert -n 版本号

撤销某一版本的操作(该版本不会被删除),生成新的版本,可能会产生冲突,需要手动修改,使用 git commit -m “备注” 提交。

查看文件具体更改内容

git diff

可以查看文件具体更改了哪些内容,使用VScode等IDE工具更为直观。

分支操作

链接远程分支

git branch --set-upstream-to origin/分支名

本地分支链接到远程分支。

查看分支

git branch

查看本地所有的分支,*开头的为当前head指针所指向的分支。

创建分支

git branch 分支名

在本地创建一个分支。

删除分支

git branch -d 分支名

在本地删除一个分支。

切换分支

git checkout 分支名

进行分支的切换,实际为head指针的改变。

合并分支

git merge --no-ff 分支名

进行分支合并,内容冲突需要手动进行文件内容的更改,可以借助VScode等IDE工具。
默认使用ff模式,即合并时携带分支历史记录。推荐使用–no-ff,即合并时只产生本次记录。

远程仓库相关

解除远程仓库链接

git remote rm origin

链接到远程仓库

git remote add origin [url]

将本地的代码库连接到远程服务器仓库。

拉取远程内容

git fetch origin master

将远程内容拉取到本地origin/master,不会更改本地master内容,如果需要改变,需要使用git merge进行合并操作。

git pull origin master

相较于git fetch,还进行了merge合并操作,但是需要注意合并的内容是否会产生冲突。请继续关注飞鱼ACG,后续我们将更新更多实用教程。

查看远程仓库与本地仓库关系

git remote show origin

查看远程仓库,以及与本地仓库的关系。

标签相关

查看标签

git tag

查看所有的tag。

添加标签

git tag [name]

添加tag,例如版本号v1.0.0等。

git tag -a [name] -m "备注"

相较于git tag,除了备注之外,还会额外多出一些信息。

删除标签

git tag -d <tagname>

删除本地标签。

git push origin :refs/tags/<tagname>

删除远程仓库标签。

推送标签到远程仓库

git push origin [tagname]

push单个tag。

git push origin --tags

push所有tag。

commit message

覆盖最后一次commit

git commit --amend -m

覆盖最后一次commit并且修改对应的mesage。

合并/修改最后的多次message

git rebase -i HEAD~3

修改最近多次信息,将要修改信息的pick 修改为edit, 然后 :wq 退出。接下来,修改日志,执行 git commit –amend ,修改完成后,执行 git rebase –continue 。
合并最近多次信息,合并目标pick不变,需要删除的历史记录把pick改为squash。

其他设置

忽略权限

git config --add core.filemode false

status时忽略文件权限,以免造更改权限之后全部文件出现modified的问题。

给TA打赏
共{{data.count}}人
人已打赏
教程

CSS学习笔记

2020-7-29 17:31:04

教程

JavaScript学习笔记

2020-8-22 11:56:47

8 条回复 A文章作者 M管理员
  1. Mua

    支持一下

  2. 皮卡丘无情

    这个ACG站做的不错

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索