git的理论知识(2021-4-12)

本文详细介绍了Git的基本操作,包括`git status`、`git init`、`git add`和`git commit`等,强调了`gitadd`和`gitcommit`的区别以及`gitcommit-am`的用法。还涵盖了远程仓库的管理,如`git remote`、`git push`和`git pull`,以及如何处理push冲突。此外,文章讨论了如何在不同分支间切换、合并和删除分支,以及解决提交问题的策略。最后,提到了`gitlog`查看提交历史和`gitrebase`恢复旧提交内容的方法。

1.常用分支指令
git status:查看有多少个文件可以加入缓冲区
新建本地仓库:git init
下面理解git add和git commit指令:
在这里插入图片描述
把当前所有新添加的文件提交到暂存区:git add *
说明:
工作目录下面的所有文件都不外乎这两种状态:已跟踪或未跟踪。已跟踪的文件是指本来就被纳入版本控制管理的文件,在上次快照中有它们的记录,工作一段时间后,它们的状态可能是未更新,已修改或者已放入暂存区
下面以一个实例说明
在项目文件夹中新增一个文件如’a.txt’时,该文件处于untracked未跟踪状态。未跟踪状态的文件是无法提交的
接下来,使用git add a.txt,使其变成已跟踪状态
这时,如果使用git commit -m ‘add a.txt’就可以顺利提交了
但是,git commit -m 和 git commit -am的区别在哪里?在于a.txt文件修改之后的处理
下面,向a.txt添加内容’a’
文件a.txt处于已跟踪,但未暂存状态。这时,如果使用git commit -m是无法提交最新版本的a.txt的,提交的只是最开始空内容的旧版本a.txt
要提交新版本a.txt,即内容为’a’的a.txt,则需要使用git add a.txt,将新版本的a.txt放到staged暂存区,然后才能使用git commit -m进行提交
而如果使用git commit -am,则可以省略git add a.txt这一步,因为git commit -am可以提交跟踪过的文件,而a.txt一开始已经被跟踪过了

把指定文件添加到暂存区:git add [文件名]//但此时文件并没有真正进入到版本库中
建立本地仓库与远程仓库的联系:git remote add [远程仓库代理名] [远程仓库路径]
例如:
git remote add origin http://yangqiang:yang123@39.98.127.39:3000/yangqiang/HW2019_1.git
查看远程连接:git remote -v
取消与远程仓库的连接:git remote remove origin
创建新分支:git branch [分支名]
切换到指定分支:git checkout [分支名]
创建分支并自动切换到分支:git checkout -b [分支名]
查看当前所在分支:git branch
合并分支:git merge [被合并的分支名]//被合并的分支合并到当前分支下
删除本地分支:git branch -d [分支名]
删除远程分支:git push origin(远程仓库代理名) --delete [远程分支名]
2.对远程分支的管理:
推送master分支到远程origin的master:
git push -u origin master//origin是远程仓库的代理名
查看最近几次提交的版本号:git log
拉取远程仓库指定的分支:git clone -b 分支名 url(远程仓库路径)
在test2019的工作目录下执行如下指令:
git remote add origin https://gitee.com/cheng-xuyuan/csharp_homework.git
在这里插入图片描述
则生成了一个名为"csharp_homework"的文件夹(csharp_homework为远程仓库名),将远程仓库的所有文件都clone下来包括.git文件:
在这里插入图片描述
执行git pull origin master 也会将远程仓库的指定分支下载下来,只是少了一个以仓库名命名的文件夹且不包含.git文件:
在这里插入图片描述
2.git中常见问题:
使用git的过程中有时候会出现无法push的问题,报错如下图:
在这里插入图片描述
这是由于远程repository和我本地的repository冲突造成,通常发生在多人协作的开发过程中

解决方法:
1.使用强制push的方法:
git push -u origin master -f //这样会使远程修改丢失,一般是不可取的
2.push前先将远程repository修改pull下来
git pull origin master
git push -u origin master

3.(1)记录一次git提交遇到的难题和解决方法。将工作目录的文件提交到了远程仓库的新建的homework分支,想要将其转换到master分支,发现在本地切换到master分支再git push达不到目的。
可以先git pull origin homework:master,再git push -u origin master,但是会报错:
在这里插入图片描述
此时可以强制push:
git push -u origin master -f

(2)
每一次执行commit指令都有一个版本号,使用git log指令可以查看版本号:
在这里插入图片描述

如上图,黄色字体为记录的提交过的版本号(版本号可以缩略为前六位)。
而且使用git branch -v查看分支及版本号时,分支名后的版本号是最新依次提交的版本号和git commit指令中添加的标记:
在这里插入图片描述
git commit后再git push,如果想将git commit的内容再提交一次需要先git pull。
也可以使用git rebase [分支名] [版本号]来恢复以前commit的内容,此时可以再git push到远程指定仓库的分支。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值