今天也是有同学问我帮她配置以下git,在大二的寒假我终于开始自己认真的去看这个东西。其实也是被别人督促着去使用,因为要和别人合作项目,开一个共用的库当然是很有必要的。于是我就踏上了学习git之旅,但当时刚接触的我一脸懵逼,其实是心里有些惧怕,导致虽然我成功了,但是都不知道自己在干啥。后来慢慢的就记住了每次写完代码要提交的三条语句,其他的都只是有个印象。今天在帮我的同学弄的时候,突然有了感觉,就在想当时在配ssh-key的时候它是干嘛的,它起了什么作用?刚好我的另一个同学说她根本就没有配过ssh也可以使用,就更加让我好奇,所以就想今天把git一些操作整理一下,也是有一个更深的印象,这样以后再操作的时候就不用在去查了。
安装git和创建自己的github就不说了,这里主要是想总结下自己记不住的一些指令,和对这些指令的一些思考。
ssh
git安装完成后肯定是需要配置的,没有配置是没有git公钥和私钥的。看到公钥和私钥其实就可以和我前一阵刚看的RSA算法练习起来了,就是对一些网络传输中的重要信息做的一种加密的算法。第一次使用的时候都需要通过秘钥进行验证是否是本人上传,使用下面的指令:
git confing --global user.name "用户名"
git config --global user.email "邮箱"
- 用
cd ~/.ssh
可以查看是否已配置ssh
- 执行生成公钥和私钥的命令
ssh-keygen -t rsa
并按三下回车,因为会有提示是否需要设置密码,如果设置了在每次使用的时候都需要输入,所以一般直接不写为空,直接回车就好了。会在一个文件夹中生成私钥id_rsa和id_rsa.pub。
可以执行
start ~
命令,生成的公私钥在.ssh文件夹里
- .ssh如果不做特殊处理的话,一般是在C:\Users\Administrator目录下。如果看不到.ssh文件,可以使用
ls -ah
指令查看隐藏文件夹即可。
- 执行查看公钥的命令:
cat ~/.ssh/id_rsa.pub
添加远程仓库
一般我们都想在github上创建一个远程仓库在和本地的项目对接,实现这两个仓库的远程同步。因为之前太依赖于AS它可以直接share到github上,会帮助我们创建仓库,后来发现还是要会命令行的方式,这样可以搞清楚一些东西。
- 首先我们在自己的本地文件下使用:
git init//初始化.git文件
git remote add origin xxxxx(仓库地址)
origin是远程仓库的名字,是git默认的叫法,也可以改成别的。
- 把本地库的所有内容推送上去:
git push -u origin master
第一次推送的时候加上-u,git不但会把本地的master分支内容推送到远程新的master分支,还会把本地的和远程的master关联起来。以后就可以简化了。
创建分支
- 创建dev分支
git checkout -b dev
加上-b代表创建并切换,等价于下面的两条命令:
git branch dev
git checkout dev
- 使用命令查看分支
git branch
*代表的是当前所在的分支
- 在当前分支做修改切回master分支并将dev分支的工作成果合并到master上
git checkout master
git merge dev
- 合并完后可以删除分支
git branch -d dev
头疼的冲突
我一般在解决冲突的时候就是手动去改。可以用
git status
查看哪几个文件中发生了冲突
用
git log --graph命令可以看到分支合并图
git pull理解:抓取分支。比如说两个人同时对分支dev做了修改,恰好这两个人又同时对其进行了修改,就采用git pull将origin/dev上的代码抓取下来,进行冲突的解决。
- 查看远程库信息,使用git remote -v;
- 本地新建的分支如果不推送到远程,对其他人就是不可见的;
- 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
- 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
- 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
- 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。
网友评论