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