git是什么,为什么要学git
- git 是一个免费的、开源的分布式版本控制系统,git可以追踪文件的修改历史,并且在不同的人员之间协同工作时能够很好地管理和协调代码的修改。
- 面试的时候可能会被问到git
- 公司基本都要使用git
- git 可以作为一种代码备份和恢复的工具
开发目录
- PWD 可以获取当前的目录地址。在git中,代码、文本文件、二进制文件、目录等所有的东西都被视为文件。
git init
初始化代码目录为代码仓库,也就是将本地文件夹转化成git仓库(在当前文件夹内生成.git文件夹)- 注意 git 仓库不能嵌套
- .git 文件夹一般情况不要去动它
- 默认 master/main 主分支
- HEAD 指针指向第一次提交
提交到github/gitee的命令
-
先展示一下本地仓库和远程仓库的关系
-
为什么把一个文件添加到仓库需要
git add
,git commit
两步呢?git add
将文件添加到暂存区git commit -m ''
将暂存区的文件一次性提交到仓库区,单引号中写上你这次工作的主题git add .
可以将所有文件一次性提交到暂存区,工作中尽量不要使用这个命令,因为他是将文件全部提交到暂存区,而git commit -m ''
命令是将暂存区的文件一次性提交到仓库区,所以可能会出现你工作区的有部分文件并不是这次工作的文件或者有部分文件还没写完或没完善,如果这些文件你都上交了,那么在工作中如果有别人调用你的文件,那会出现可大可小的各种问题,所以不建议在工作中使用这条指令git remote add
向本地仓库添加远程仓库地址 例如:csharpgit remote add origin https://github.com/your-username/your-repository.git
其中,
origin
是远程仓库的名称,后面跟着远程仓库的 URL。在这个例子中,我们添加了名为origin
的远程仓库,其 URL 为https://github.com/your-username/your-repository.git
git push origin master/main
将本地代码推送到远程仓库
提交代码时的注意事项
-
严格检查
代码提交之前一定要谨慎,以防万一,需要检查当前的修改和上一次的修改改了哪些地方
git diff
命令可以帮我们比较修改(git diff
命令默认会逐行比较文件内容,并显示出不同处的具体信息) -
commit -m ''
不能乱写单引号内需要写清楚完成了什么任务,leader 很大概率就看-m 后的东西来了解我们的工作
git 的其他命令
-
git status
这个命令可以很方便了解当前我们仓库的状态。它会显示出工作区和暂存区的文件状态,并提示你执行下一步操作。当离开电脑前一段时间后再返回时,最好用这个命令查询一下当前仓库的状态,以防产生其他问题 -
git log
打印所有的提交 例如:如上图,commit后面到括号前面的黄字叫做hash,表示提交的id,id具有唯一性
(HEAD -> master)
中 HEAD 是指针,指向目前的最后一次提交master 代表分支,等于main
-
git log --oneline
打印当前一行 -
git reset
快速来到任务一个版本例如:
git reset HEAD^
是一个用于撤销最近一次提交的 Git 命令。当你在 Git 仓库中进行一些修改并提交后,可以使用
git reset HEAD^
命令将仓库恢复到上一个提交的状态。该命令会将当前分支指针向后移动一步,使其指向上一个提交,同时取消提交的更改,也就是把暂存区或者已经提交的代码回退到工作区。^
代表回退次数,几个就代表回退几次 -
git reset --hard id
用于重置 Git 仓库状态并将当前分支指针移动到指定提交id
执行
git reset --hard id
命令后,Git 会做以下几件事情:- 将当前分支的指针重置到指定的提交
id
,即把当前分支指向指定提交。 - 丢弃指定提交以后的所有提交记录,包括它们所引入的修改。这意味着之后的所有提交都会被删除,它们不再存在于仓库中。
- 修改工作目录和暂存区的文件状态,使它们与指定提交
id
中的文件状态一致。也就是说,工作目录和暂存区会回滚到指定提交的状态,所有未提交的修改都会被丢弃。
需要注意的是,
git reset --hard
是一个潜在危险的操作,因为它会彻底丢弃之后的提交和更改,并且无法恢复。在执行该命令之前,请确保你了解其影响,并且已经备份或提交了重要的更改。同时,如果已经将修改推送到远程仓库,强烈不建议使用
git reset --hard
命令来撤销提交,因为它会破坏仓库的一致性,并且可能导致冲突。在这种情况下,建议使用git revert
命令来创建一个新的提交,以保留修改的历史记录。 - 将当前分支的指针重置到指定的提交
-
git reflog
用于查看 Git 仓库中所有分支的引用历史记录的命令。它记录了各种HEAD
引用的所有操作,包括提交、重置、撤销提交等,可以帮助你找回误操作或者丢失的提交需要注意的是,
git reflog
命令只能查看本地仓库中的引用历史记录。如果你想查看远程仓库的引用历史记录,需要使用git remote show
或者其他相关命令来查看远程仓库的状态和更新历史。