Git相关知识点
# git的基本安装
# linux下安装git
sudo apt-get install git
1# mac下安装git
brew install git
1# windows下安装git
百度gitbash
,下载安装即可。
# git的基本配置
git config --global user.name "xxxxx"
git config --global user.email "xxxxxxxxxxx@qq.com"
1
2
2
# 查看配置信息
git config --list
1
# git基本命令
# git init
通过创建 demo 文件夹,git init
初始化,新建一个仓库。mkdir demo && cd demo git init
1
2# git clone
如果在git
上已经有了仓库,可以直接通过git clone
将项目clone
到本地。git clone [仓库地址]
1# git diff
查看做了哪些修改。可按q
退出。git diff
1# git add
可以将文件添加到缓存去,获得Git
的跟踪。也可以通过加参数,将所有的文件添加到缓存区。例如:git add . //添加所有文件 touch a.html //新建 a.html 文件 git add a.html //添加 a.html 文件 //下面的三种方式效果相同 git add . git add -A git add *
1
2
3
4
5
6
7
8# git commit -m
git commit
将缓存区内容添加到仓库中。git commit -m '描述'
1# git status
可以查看当前版本库各个文件的状态。git status
1# git log
查看提交记录。git log
1# git reset
取消已经缓存的内容。通过版本号回滚。git reset --hard HEAD //或 git reset --hard [版本号]
1
2
3# git rm
git rm
命令把一个文件删除,并把它从git的仓库管理系统中移除。git rm readme.md
1# git status
查看状态git status
1# git checkout
取消对某个文件的修改git checkout 文件名
1
# git pull 使用
当远端的版本优先于本地的版本,而本地又做了新的版本要提交的时候,会提示提交失败。建议使用 git pull
拉取远端的更新。但是拉取的时候会有两种情况。
- 远端更新和本地更新不冲突,此时
git pull
的时候,会弹出 nano 编辑界面,提示用户合并两个不冲突的更新并提交版本留言,使用ctrl + x
,选择 Y 同意,然后直接回车,即可离开 nano 编辑界面。执行完毕之后会生成一个新的版本,即合并远端和本地更新的版本,此时在执行git push
远端和本地就同步了。
- 远端更新和本地更新不冲突,此时
- 远端更新和本地冲突(修改的是同一文件的相同位置),此时也需要
git pull
拉去远端更新,但是提示拉取失败,需要用户手动处理冲突,处理之后相当于修改了文件,所有直接使用git add . git commit -m'' git push
即可提交成功。
- 远端更新和本地冲突(修改的是同一文件的相同位置),此时也需要
# 使用 git 推送代码
- 首先,要在
git
上新建仓库,然后clone
下来,执行命令:
git clone 仓库地址
1- 首先,要在
- 首次推送,如果没有 clone 现有仓库,而是直接在本地 git init 的仓库的话,需要先添加远程仓库地址。之后可以省略参数
git push
git push -u origin master
1- 首次推送,如果没有 clone 现有仓库,而是直接在本地 git init 的仓库的话,需要先添加远程仓库地址。之后可以省略参数
- 为这个仓库添加一个远程地址
git remote add origin [你的git上的仓库地址]
1- 由于每次 push 都需要输入用户名和密码,很麻烦。这里需要设置下 ssh 密钥
public key
- 首先需要在本地机器上生成 key。
生成公钥的过程在所有操作系统上都差不多。 首先先确认一下是否已经有一个公钥了。SSH 公钥默认储存在账户的主目录下的
~/.ssh
目录。进去看看:关键是看有没有用 something 和 something.pub 来命名的一对文件,这个 something 通常就是cd ~/.ssh ls authorized_keys2 id_dsa known_hosts config id_dsa.pub
1
2
3
4id_dsa
或id_rsa
。有.pub
后缀的文件就是公钥,另一个文件则是密钥。假如没有这些文件,或者干脆连.ssh
目录都没有,可以用ssh-keygen
来创建,这时,会在~/.ssh/
文件夹之下生成一对ssh key
,包括一个public key
和一个private key
。(如果是windows用户,这个文件一般会在这里:C:\Users\Administrator.ssh
。该程序在 Linux/Mac 系统上由 SSH 包提供,而在 Windows 上则包含在 MSysGit 包里,可自行选择。 - 复制
public key
查看内容cat ~/.ssh/id_rsa.pub
- 将拷贝的
public key
添加在git
账户上: 右上角点击头像-> 点击settings-> 点击SSH KEYS-> 点击ADD SSH KEYS-> 将获取的public key粘贴于此即可。
- 由于每次 push 都需要输入用户名和密码,很麻烦。这里需要设置下 ssh 密钥
# git 分支操作
# 创建分支
- 创建新的分支之后,分支内默认和 master 分支内的内容相同。想要将本地创建好的分支同步到远端,直接执行
git push -u origin [分支名]
即可,以后想要更新gh-pages
分支,直接按照原来的 git 三步即可。 gh-pages
分支比较特殊,该分支上的内容可以使用git账户名.git.io/仓库名
地址访问。- 创建分支:
git branch [yourbranch]
1 - 查看分支:
git branch //查看本地分支 git branch -a //参数 查看所有分支(本地和远端) git branch -r //参数 查看远端分支
1
2
3 - 删除本地分支:
git branch -D gh-pages //(gh-pages 为分支名称)
1 - 删除远程分支:
git push origin :gh-pages //(origin 后面有空格)
1
- 创建新的分支之后,分支内默认和 master 分支内的内容相同。想要将本地创建好的分支同步到远端,直接执行
# 切换分支
直接创建/切换分支
git checkout [yourbranch]
1复制分支
git checkout -b [yourbranch]
1# 删除分支
git branch -d [yourbranch]
1# 推送分支
git push origin [yourbranch]
1
# 分支更新及合并
# git 实现历史回滚
回滚之后想要直接同步到远端,由于远端的版本优先于本地,所以直接 git push
失败。使用 git push -f
强制推送到远端。想要回滚之后在回到原来的版本,版本号找不到了,我们使用 git reflog
命令,可查看所有版本的修改,就可以看到所有的版本号了。
# git clone 获取指定指定分支的指定commit版本
git clone [git-url] -b [branch-name]
git reset --hard [commit-number]
1
2
2
# git 免输入用户名和密码
如果我们 git clone
的下载代码的时候是连接的 https://而不是git@git (ssh)
的形式,当我们操作 git pull/push
到远程的时候,总是提示我们输入账号和密码才能操作成功,频繁的输入账号和密码会很麻烦。解决办法:git bash进入你的项目目录:
全局设置
git config --global credential.helper store
1
局部设置
git config credential.helper store
1
然后会在你本地生成一个文本,上边记录你的账号和密码,你使用上述的命令配置好之后,再操作一次 git pull
,然后它会提示你输入账号密码,这一次之后就不需要再次输入密码了。
# git 常用命令归纳
# git 清除对所有文件的追踪
解决在.gitignore中添加忽略文件,忽略不生效的问题git rm -r -f --cached .
1# git 提交命令
git pull git add . #(.或\*或-A)表示全部 git commit -m'注释信息' git push #提交修改
1
2
3
4# 仓库信息查询
git init #初始化仓库 -y全部默认yes git log #查看提交记录 git status #查看仓库信息
1
2
3# git 分支操作
git branch [分支名称] #gh-pages 分支特殊 ([用户名].git.io/[仓库名]/) 新建分支 git chechout [分支名称] #切换分支 git merge [需要合并的分支]
1
2
3# 其他
sudo apt-get install git git init ls -a git status git add README git commit -m "1st" git config --global user.name "zlluGit" git config --global user.email "18230086651@163.com" git log git log -p sudo apt-get install tig git commit -a git diff git config --global core.editor vim git commit -a -v git config --global alias.ci "commit -a -v" [user] name = zlluGit email = 18230086651@163.com [core] editor = vim [alias] ci = commit -a -v
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
上次更新: 2024/01/30, 00:35:17