软件构造课程——git基本命令~个性化总结

虽然现在网上git命令已经烂大街了,但是平时用来交作业的过程中,常常因为个人习惯性操作造成的个性化失误,还是有必要总结一下解决方案滴!

下面先回顾一下基本操作:
1.首先,初始化本地仓库,主要有2种方式获得本地仓库:

git init 		初始化本地仓库

这是一个新作业的开始哈!所以它还是空的,接下来就耕耘吧!

git clone 仓库的url

这个时候一般是作业较交错了,或者正要修改版本呢

2.添加项目到本地仓库
一般整个项目都添加,所以用add .

commit -m  '这里备注点什么吧'

这时,已经将项目添加到了本地仓库,你可以通过命令git ls-file --stage
查看自己现在的缓存区里面有什么

3.对于添加错文件的情况,我采用的是暴力手段,直接通过

git rm --cached -r .
当然,会有worning而没法删除的情况,这里,我直接采用更暴力的方式:
git rm --cached -r -f . // 进行强行删除

清空全部缓存,重新添加,别问为什么,因为现在的项目不是很复杂,而目录名字太长,博主太懒…
之后,重新重复2中的操作。

4.如果你想查看本地仓库分支的状态 ,那么使用

git stauts

从图中可以知道当前缓冲区中添加了新文件,但尚未commit5.如果你想查看以下本地本地仓库中的提交记录,git log 查看,同时还有文件上传时间等信息:
在这里插入图片描述
6.之后,连接远程仓库

git remote add origin <URL>

最后,将本地仓库的内容push到远程仓库中 git push origin master

7.断开远程与本地仓库的连接:
这样正常走下来,不会有什么问题,但是当前文件夹已与另一个仓库连接,想要remove后与另一个仓库进行连接,直接输入

 git remote rm 用户名(一般是origin)

再输入git remote add origin 再进行git add 文件名,
但是,目前为止,还没有发现这种操作有什么用。。
一般出什么大问题直接通过删除隐藏文件.git解决一切问题!

重新建立连接:
注意这里重新建立连接不是直接git init, 然后git remote add ,不然就产生了这样的效果:
在这里插入图片描述
正确的方式是,重新clone正在工作的分支

git clone -b v2 https://github.com/ComputerScienceHIT/********,

然后得到一个以私人仓库命名的工程,继续工作即可。

当然为了删除的bg显得高一点,可以选择键入下面的命令,删除.git文件

ls -a 发现.git文件
rm -rf .git 移除.git文件

在这里插入图片描述
8.然后是分支问题
比如,马虎的博主提交了代码之后忘记提交报告了。额,发生过几次?。。
可以通过下面命令将报告补交到指定分支上:

git add  report 
git commit -m 'report'
git push origin 分支名

9.提交分支,分为3种情况:

a.远程已有remote_branch分支并且已经关联本地分支local_branch且本地已经切换到	local_branch
   git push

 b.远程已有remote_branch分支但未关联本地分支local_branch且本地已经切换到local_branch

     git push -u origin/remote_branch

 c.远程没有有remote_branch分支并,本地已经切换到local_branch

    git push origin local_branch:remote_branch

不过其实,我一般除了什么问题都是先暴力删除:

从远程仓库删除分支
	 git push origin --delete 分支名

然后,通过情况c.

即,执行下列命令:
git checkout -b v2 //创建并切换到本地分支 (如果本地分支已存在,可以通过git checkout 分支名 直接切换)
git push origin v2:v2 // 意思是将本地名为v2的分支推送到远程名为v2的分支上(新创建的)

然后附上一个链接
这位博主给的基本命令已经比较全了,下面关于分支操作,也是他的
个人觉得学习git命令主要还是要理清楚原理,git主要负责管理三个部分:
一个是当前工作目录,差不多就是实际文件所在的文件夹吧。。
一个是缓存区,add之后文件所在的位置
另一个是本地仓库,其中Head所指向的就是最近一次提交的文件。
老师给的这张ppt很好地揭示了这三个部分实现交互的基本命令
在这里插入图片描述
还有本地仓库中分支的概念,不同分支存在的目的是为了实现并行开发,在各个之中试验性地进行性能优化,从而实现产品版本的逐步更新换代。
在这里插入图片描述
主分支名字为Master,创建仓库时,默认的所在分支即为Master分支。
创建其他分支,并切换过去: git checkout -b branch1
切换回主分支:git checkout master
再把新建的分支删掉:git branch -d feature_x
合并其他分支到当前分支: git merge
合并改动之前,可以使用如下命令查看:git diff <source_branch> <target_branch>
除非你将分支推送到远端仓库,不然该分支就是 不为他人所见的:git push origin
git checkout – 使用 HEAD 中的最新内容替换掉你的工作目录中的文件。已添加到缓存区的改动,以及新文件,都不受影响。
假如你想要丢弃你所有的本地改动与提交,可以到服务器上获取最新的版本并将你本地主分支指向到它:
git fetch origin
git reset --hard origin/master

工作区中修改比较 get diff

(1)当暂存区中没有文件时,git diff比较的是,工作区中的文件与上次提交到版本库中的文件。
(2)当暂存区中有文件时,git diff则比较的是,当前工作区中的文件与暂存区中的文件。
(3) git diff HEAD – file,比较的是工作区中的文件与版本库中文件的差异。HEAD指向的是版本库中的当前版本,而file指的是当前工作区中的文件。
(4)git diff本身只显示尚未暂存的改动,所以,在暂存了所有更新过的文件后,运行git diff发现什么不同也没有。
(5)已暂存的的内容,可以使用git diff --cached或者git diff --staged。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章