设置Git用户名和标签
在安装完Git以后需要设置用户和签名,至于为什么要设置用户签名可以看一下这篇文章【学了就忘】Git基础 — 11.配置Git用户签名说明 - 简书 (jianshu.com)
基本语法:
git config --global user.name 用户名
git config --global user.email 邮箱
查看是否设置成功:
方式一:在git控制台中输入命令git ~/.gitconfig
方式二:查看用户目录小面的.gitconfig文件
配置SSH免密登录
拉取代码管理仓库的第二种方式就是通过SSH来获取,首先点击SSH
第二步去配置SSH
第三步,检查本地是否存在密钥,如果存在id_ras(私钥)、id_ras_pub(公钥)这两个文件则说明已经创建过了,直接拷贝即可
$ls ~/.ssh
如果不需要这份可以删除,注意这份密钥没有在使用,移除之后就无法恢复了,之前所使用的地方也需要使用新的:
$ rm -rf ~/.ssh/id_rsa
$ rm -rf ~/.ssh/id_rsa.pub
创建密钥(存在密钥的可以跳过) 邮箱记得填写自己的
$ ssh-keygen -t rsa -C "youremail@example.com"
然后将得到的公钥文件里面的内容拷贝到上面,并点击生成
后面在拉取代码的时候就复制SSH链接就行
初始化文件
基本语法:
git init
初始化以后会在项目目录下面多一个.git文件,如果没有,需要打开隐藏目录
Git添加本地库以及查看日志的基本命令
查看本地库状态
基本语法:
git status
提交一个文件以后:
添加文件到暂存区(工作目录的暂存区中)
基本语法:
git add
提交代码到本地库(形成历史版本)
基本命令
git commit -m "日志信息" 文件名
Git版本更新
编辑并发布第二个版本:
版本切换
查看版本信息
基本语法:
简单日志:git reflog
详细日志:git log
版本切换
基本语法:git reset --hard 版本号
分支
什么是分支
在版本控制过程中,同时推进多个任务,为每个任务,我们可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。(分支底层其实也是指针的引用)
查看分支
基本语法:
git branch -v
分支前面带*号,表示当前分支
创建分支
基本语法
git branch 分支名
切换分支
基本语法
git branch checkout 分支名
在新添加的分支下面修改代码,然后提交到该分支:
创建并切换分支
基本语法:
git checkout -b 新分支名字
上面从图片中可以看出分支虽然建立成功了,但是没有关联上远程分支,所以在拉去或者提交的时候,控制台中都会报There is no tracking information for the current branch.
这个时候需要手动关联远程分支: git push --set-upstream origin 远程分支名字
或者是使用这种方式来关联:git push --set-upstream origin 本地分支名字:远程分支名字
切换分支之前需要手动提交代码到暂存区或者远程分支上面,不然切换到其他分支以后,当前分支未提交的代码将会消失
我们一般在协同开发的时候,有可能需要切换到别人的分支上面去看一下对方是怎么写的,这个时候我们在切换分支之前就需要先将我们的分支提交到本地或者远程,如果没有提交就切换分支:
1.会导致我们未提交的代码消失,当我们切换回来的时候看到的是我们上一次提交的代码;
2.如果选择智能切换
不仅会影响到自己未提交的代码,操作不当,还会影响到你在别人分支上面看到的代码。别人分支代码是最右侧的,如果你选择了最左侧你的代码,或者是两边代码都选择了,那么你在别人的分支上面看到的代码就不是别人正确的代码。
而且最要命的是如果选择了上面两种,在别人分支上面切换回来的时候又会提示代码冲突,又需要解决冲突,这个时候最好的选择就是强制切换,强制切换以后回到的是上一次提交的代码。如果选择智能切换会出现一下的问题:
注意:在别人分支上面切换回自己分支的时候千万不要去提交别人的代码
合并分支(把指定的分支合并到当前分支上)
正常合并(master分支没有做调整,dev/test...分支做了调整,合并到master分支上,代码没有冲突)
冲突合并(要合并的两个分支代码存在差异,Git不能确定要保留那个,需要手动合并)
合并完分支以后记得提交代码
删除分支
基本语法:
删除已合并的本地分支——git branch -d 分支名字
强制删除未合并的本地分支——git branch -D 分支名字
删除远程分支——git push origin --delete 分支名字
注意:在删除分支之前需要切换到其他分支
将代码提交到本地或者远程
如果你有一次代码提交到了本地仓库,但是没有推送到远程仓库。当你下一次换另一个版本来提交时,会将你前后两次提交到本地的代码都推送到远程仓库:
这个时候如果从新拉取远程的代码,就会拉取到目前远程所展示的代码。我们还会发现,在我们后面的提交中,会看到将test.txt文件移送到test目录下面的这个变化,我们在控制台中使用git status命令的时候,也会发现之前有一个改变没有提交:
当我们将这个改变提交到远程仓库以后,远程仓库对应的代码就会被删除
当然我们我们想在暂存区将这个删除的动作取消,我们可以使用"git restore --staged <file>命令,使用这个命令以后不会改变本地和远程分支目前的代码状况,也就是说,远程分支上面还是会有test.txt文件,而本地分支依然没有该文件。