学习背景
Git
作为目前很多代码服务器(GitHub/GitLab/Gitee码云
等)推行的版本控制工具,大大提高团队的开发效率,那么作为职场新人,有一些最基本和最常用的命令,是需要我们去掌握和了解一下的!!!
有些小伙伴说了IDEA和Eclipse集成的可视化Git它不香吗? 确实平时开发中很多最基本的可视化操作还是很高效的,但可视化操作也是基于git本命令来实现的,所以还是有必要来了解一波Git命令~
以下是我个人平时工作所做的笔记,记录了一些比较常用Git命令,这里发布出来,希望对大家有帮助。
进入正文~
一、配置用户名密码
1.1 添加用户名/邮箱名
git config --global user.name "your_username"
git config --global user.email "your_email@example.com"
这里定义的用户名作为你提交代码是的一个标识
邮箱一般对应代码服务器上配置
获取邮箱示例:GitHub ->个人中心 ->Settings ->Profile ->email获取email对应的邮箱
1.2 保存用户名密码
使用git clone + url
服务器代码时,主要有HTTPS-url
和SSH-url
两种url
。
git clone SSH-url
因为配置了key公钥
,因此不需要输入用户密码确认,但是git clone HTTPS-url
每次都提示输入用户密码
示例:
git clone https://github.com/JustinJava/pwd-encrypt-decrypt.git
为了方便开发,需要设置为保存用户密码,不用每次都需要手动确认~
(1)方法一
打开git命令窗口,直接通过命令配置credential
凭证的缓存时间
默认缓存(15分钟)
git config --global credential.helper cache
缓存(1小时):
git config --global credential.helper 'cache --timeout=3600
缓存(永久):
git config --global credential.helper store
(2)方法二
打开git命令窗口,通过修改.gitconfig
文件设置credential
凭证的缓存时间
cd ~
ls -a
vim .gitconfig
按实际需要,添加以下内容:
默认缓存(15分钟)
[credential]
helper = cache
缓存(1小时)
[credential]
helper = 'cache --timeout=3600'
缓存(永久)
[credential]
helper = store
二、下载代码
在本地指定目录下,右键->Git Bash Here
打开git命令窗,执行git clone
命令下载服务器源码,格式:git clone url
示例:
git clone https://github.com/JustinJava/pwd-encrypt-decrypt.git
三、操作文件
3.1 查看文件状态
git status
可查看本地变更文件(新增/修改/删除
)的状态~
3.2 更新文件
git pull
拉取服务器最新文件内容~
3.3 提交变更文件
变更文件主要包括新增/修改/删除
文件,每次需要提交变更文件前,一般都需要先git pull
拉取最新代码,检查是否与自己本地变更文件冲突,养成良好习惯,尽可能的避免代码冲突,提高开发效率~
git pull
正常更新代码后,git status
查看本地文件状态
commit
提交变更文件前,需要先add
添加变更文件提交到本地仓库(Local Repository)
3.3.1 提交变更(新增/修改)文件
添加指定变更(新增/修改)文件
git add [filename1] [filename2]
添加所有变更(新增/修改)文件
git add .
.
表示一次性添加所有变更(新增/修改
)文件,不包括变更(删除
)文件。
添加所有变更(新增/修改/删除)文件
git add -A .
注意-A
后面有一个.
,表示一次性添加所有变更(新增/修改/删除
)文件
提交指定变更文件
git commit [filename1] -m "提交指定文件(新增)--filename1"
git commit [filename2] -m "提交指定文件(新增)--filename2"
-m表示提交注释说明~
提交所有变更文件
git commit -m "注释说明--提交所有变更文件"
推送提交的变更内容到远程
git push origin 远程分支名
3.3.1 提交(修改/删除)文件
删除文件–指定文件
rm [filename1] [filename2]
删除目录–指定目录
rm -f [dirname]
添加注释–指定被删除的文件/目录
git commit [filename1] -am "添加注释--指定被删除的文件/目录"
添加注释–所有被删除文件/目录
git commit -am "删除注释--所有被删除文件/目录"
推送提交的变更内容到远程
git push origin 远程分支名
3.3.3 撤销提交文件
实际开发中,因多人开发无法确保每次都能拉取最新的服务器内容到本地后,再推送变更内容到服务器
因此最经常出现的问题是,push
推送变更内容到远程分支时,提示代码冲突的报错~
此时commit
提交到本地仓库(Local Repository)的内容已经被保存到暂存区
这时想要撤销push
推送,恢复到push
前的commit
状态,但是不能影响自己本地做的所有修改,可以通过git reset --mixed
命令来实现~
重置push
git reset --mixed 版本号(最新历史commit的版本号)
可通过git log
查看日志,查看最新历史commit的版本号
四、操作分支
4.1 查看分支
查看本地分支
git branch
查看本地+远程分支
git branch -va
4.2、创建分支
创建本地分支
git branch 本地分支名
创建本地分支并切换到该分支
git checkout -b 本地分支名
创建远程分支
git push origin 已有分支名(本地):分支名(远程)
4.3 切换分支
切换本地分支
git checkout 本地分支名
切换远程分支
git checkout -b 本地分支名 origin/远程分支名
4.4 删除分支
删除本地分支
git branch -d 本地分支名
-d
表示强行删除,如果删除报错:error:Cannot deletge branch ‘本地分支名’ checked out at ‘C:******’
原因是:该分支正在使用,先切换到其他分支,再删除dev分支
删除远程分支
方式一:push推送一个空分支替换为远程分支
git push origin:远程分支名
方式二:直接delete删除
git push origin --delete 远程分支名
4.5 合并分支
合并本地分支(场景):将dev
合并到master
分支中
**第一步:**将当前分支切换为master
git checkout master
**第二步:**合并dev
分支到当前master
分支
git merge dev
第三步:push
推送合并后的当前本地分支master
到远程分支master
git push origin master
五、配置SSH密钥
5.1 获取邮箱
示例:GitHub ->个人中心 ->Settings ->Profile ->email获取email对应的邮箱
5.2 生成SSH密钥
桌面 ->右键Git Bash Here
打开git命令窗口,执行命令:
ssh-keygen -o -t rsa -b 4096 -C "your_email@example.com"
5.3 查看SSH密钥
生成SSH公钥文件保存在~/.ssh/id_rsa.pub
这个公钥文件中,查看公钥内容命令:
cd ~/.ssh
cat id_rsa.pub
5.4 生成SSH密钥
将公钥~/.ssh/id_rsa.pub
中的内容拷贝到服务器~
示例:GitHub ->个人中心 ->Settings ->SSH and keys ->New SSH Key