使用这里前,请先按照教程安装git
参考:https://blog.csdn.net/web_csdn_share/article/details/79243308;(含分支的建立等)
https://www.cnblogs.com/smuxiaolei/p/7484678.html;(含配置全过程等)
这样写出的东西其实很难猜,实践中慢慢完善。
常识:
SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。
Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
开始正题:
查看是否已有自己的用户名和邮箱地址:
$ git config user.name
$ git config user.email
配置用户名和 配置邮件(global表示当前机器所有的GIT仓库始于这个配置)
git config --global user.name "xxx"
git config --global user.email "xxx@xxx.com"
创建新仓库
找到自己所建的仓库根目录下
git init : 初始化本地git仓库(创建新仓库)
上面我们发现:对应的目录下已经有了git仓库。于是新建目录作为仓库。
查看对应目录结果:(建议先修改隐藏文件可查看,不然你是看不到的.git目录的)
接下来克隆(clone): 注意https://github.com/MOLINTIAN/ownStudy.git这里需要改变git://github.com/MOLINTIAN/ownStudy.git(https 改为 git)
查看成功:
查看公玥连接是否成功:首先提示不能创建,这是因为还差一个文件,你选择yes后它会帮你创建
报错:这是因为安装时,更改了路径。解决方式创建如下路径,放入文件即可。
到这里就说明已经配置完成:$ git push -u origin master,第一次需要加 -u
接下里时git提交流程:
git上传代码:
git pull(必须先pull,这一步执行后一定仔细看,如果发生错误后一定看哪错了,为什么错了,不会弄找人帮忙)
git status
git add <文件PATH>(一个文件一个文件的放,确定是你该懂得东西再add)或者git add . 上传所有。
git commit -m "提交日:2018/09/4 提交者:周毅 提交内容:修改了一些样式问题"
git push origin
提交时报错,我尝试了它给定的方法去解决,并没有解决。
使用git clone "项目地址"时,将https换成git而造成的,所以之后要使用命令:
git remote rm origin
git remote add origin git@github.com:用户名/项目名.git
git push origin
git push --set-upstream origin master
测试提交内容:
前提和结果(至此所有的内容结束)
在我进行如下操作时,你需要了解:
理解版本库、工作区与暂存区的区别:
版本库(Repository):就是仓库中的.git。
工作区:仓库目录下除了.git都是工作区。
暂存区:存在于.git,是非常重要的区域。
你还需要了解常见命令:(或许并看不懂,但是你得看一遍有印象,当然你也可以跳过这块直接看下面的操作)
git config --global color.ui true : # git status等命令自动着色
git config --global color.status auto
git config --global color.diff auto
git config --global color.branch auto
git config --global color.interactive auto
git config --global --unset http.proxy# remove proxy configuration on git
git clone git+ssh://git@192.168.53.168/VT.git # clone远程仓库
git rm xxx : # 删除index中的文件
git rm -r * : # 递归删除
git show dfb02e6e4f2f7b573337763e5c0013802e392818 # 显示某个提交的详细内容
git show dfb02 : 可只用commitid的前几位
git show HEAD : # 显示HEAD提交日志
git show HEAD^ : 显示HEAD的父(上一个版本)的提交日志 ^^为上两个版本 ^5为上5个版本
git tag : :# 显示已存在的tag
git tag -a v2.0 -m ‘xxx’ : # 增加v2.0的tag
git diff : # 显示所有未添加至index的变更
git diff --cached : # 显示所有已添加index但还未commit的变更
git diff HEAD^ : 比较与上一个版本的差异
git diff HEAD – ./lib : # 比较与HEAD版本lib目录的差异
git diff origin/master…master : # 比较远程分支master上有本地分支master上没有的
git diff origin/master…master --stat : # 只显示差异的文件,不显示具体内容
git remote add origin git+ssh://git@192.168.53.168/VT.git # 增加远程定义(用于push/pull/fetch)
git branch : # 显示本地分支
git branch --contains 50089 : # 显示包含提交50089的分支
git branch -a : # 显示所有分支
git branch -r : # 显示所有原创分支
git branch --merged : # 显示所有已合并到当前分支的分支
git branch --no-merged : # 显示所有未合并到当前分支的分支
git branch -m master master_copy : # 本地分支改名
git checkout --text.txt : 意思就是把readme.txt文件在工作区做的修改全部撤销
git checkout -b master_copy : # 从当前分支创建新分支master_copy并检出
git checkout -b master master_copy : # 上面的完整版
git checkout features/performance : # 检出已存在的features/performance分支
git checkout --track hotfixes/BJVEP933# 检出远程分支hotfixes/BJVEP933并创建本地跟踪分支
git checkout v2.0 : # 检出版本v2.0
git checkout -b devel origin/develop : # 从远程分支develop创建新本地分支devel并检出
git checkout – README : # 检出head版本的README文件(可用于修改错误回退)
git merge origin/master :# 合并远程master分支至当前分支
git cherry-pick ff44785404a8e : # 合并提交ff44785404a8e的修改
git push origin master : # 将当前分支push到远程master分支
git push origin :hotfixes/BJVEP933 : # 删除远程仓库的hotfixes/BJVEP933分支
git push --tags : : # 把所有tag推送到远程仓库
git fetch : # 获取所有远程分支(不更新本地分支,另需merge)
git fetch --prune : # 获取所有原创分支并清除服务器上已删掉的分支
git pull origin master : # 获取远程分支master并merge到当前分支
git mv README README2 : # 重命名文件README为README2
git rebase
git branch -d hotfixes/BJVEP933 : # 删除分支hotfixes/BJVEP933(本分支修改已合并到其他分支)
git branch -D hotfixes/BJVEP933 : # 强制删除分支hotfixes/BJVEP933
git ls-files : # 列出git index包含的文件
git show-branch : # 图示当前分支历史
git show-branch --all : # 图示所有分支历史
git whatchanged : # 显示提交历史对应的文件修改
git revert dfb02e6e4f2f7b573337763e5c0013802e392818 : # 撤销提交dfb02e6e4f2f7b573337763e5c0013802e392818
git ls-tree HEAD : # 内部命令:显示某个git对象
git rev-parse v2.0 :# 内部命令:显示某个ref对于的SHA1 HASH
git reflog : # 显示所有提交,包括孤立节点
git show HEAD@{5}
git show master@{yesterday} : # 显示master分支昨天的状态
git log --pretty=format:’%h %s’ --graph # 图示提交日志
git show HEAD~3
git show -s --pretty=raw 2be7fcb476
git stash : # 暂存当前修改,将所有至为HEAD状态
git stash list : 查看所有暂存
git stash show -p stash@{0} : # 参考第一次暂存
git stash apply stash@{0} : # 应用第一次暂存
git grep “delete from” : # 文件中搜索文本“delete from”
git grep -e ‘#define’ --and -e SORT_DIRENT
git gc
git fsck
Git提交文件到版本库有两步:(如下命令请参考更下面的git命令)
第一步:是使用 git add 把文件添加进去,实际上就是把文件添加到暂存区。
第二步:使用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支上。
实际操作一番:
相关命令:
git status : # 查看当前版本状态(是否修改)
git add xyz : # 添加xyz文件至index
git add . : # 增加当前子目录下所有更改过的文件至index
git commit -m 'xxx' : # 提交
git commit --amend -m 'xxx' : # 合并上一次提交(用于反复修改)
git commit -am 'xxx' : # 将add和commit合为一步
1,去仓库的工作区,新建一个text.txt
2,操作①将其添加到暂存区;操作②将暂存区的提交到仓库;操作③查看是否还有文件未提交:
3,修改文件后,会给出那些文件被修改,如何查看修改的内容?
首先,我已经修改了上面的文件内容。
操作①查看是否还有文件未提交,显然说text.txt文件被修改了;操作②查看到修改的内容。
4,上面的一系列操作,是否感到很慌呢?万一提交错了,就得挨骂。
所以来尝试版本回退,首先你得将上面改过的再次提交。
git show v2.0 : # 显示v2.0的日志及详细内容
git log v2.0 : # 显示v2.0的日志
git reset --hard HEAD : # 将当前版本重置为HEAD(通常用于merge失败回退)
操作①查看修改记录:(每次提交都对应一个版本号)优点:信息非常详尽。
如果修改较多上面的显示显得过于繁杂;所以卡慕达进化:
git log :# 显示提交日志
git log -1 : # 显示1行日志 -n为n行
git log -5
git log --stat : 显示提交日志及相关变动文件
git log -p -m
使用这些来简化。举个例子:(之后这一个)
回退:你可以看到
git reset --hard HEAD^ //回到上一版本
git reset --hard HEAD^^ //回到上上个版本,那么依此类推。
还有很多操作,日后遇到再来记录。
进下来是配置远程仓库的问题。
在了解之前,先注册github账号,由于你的本地Git仓库和github仓库之间的传输是通过SSH加密的,所以需要一点设置:
第一步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果有的话,直接跳过此如下命令,如果没有的话,打开命令行,输入如下命令:(注意有严格的大小写区分),之后一直enter即可。
ssh-keygen -t rsa –C “youremail@example.com”
可以看到已经有了,第一个是私玥,第二个是公玥
去到你github上:
拿到已经建好的仓库的https
就目前来看:
在GitHub上的这个ownStudy.git仓库还是空的,上面已经提及过,我们需要把本地Git仓库和github仓库之间关联起来,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
运行如下命令:
git remote add origin https://github.com/MOLINTIAN/ownStudy.git
有事去了,什么时候想起来了就来写。上面是有问题的,好像是公玥上的问题,等有时间就来解决。