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

git的理论知识(2021-4-12)
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:yang12339.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的mastergit 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文件3.git中常见问题使用git的过程中有时候会出现无法push的问题报错如下图这是由于远程repository和我本地的repository冲突造成通常发生在多人协作的开发过程中解决方法1.使用强制push的方法git push -u origin master -f //这样会使远程修改丢失一般是不可取的2.push前先将远程repository修改pull下来git pull origin mastergit push -u origin master3.1记录一次git提交遇到的难题和解决方法。将工作目录的文件提交到了远程仓库的新建的homework分支想要将其转换到master分支发现在本地切换到master分支再git push达不到目的。可以先git pull origin homework:master再git push -u origin master,但是会报错此时可以强制push:git push -u origin master -f2每一次执行commit指令都有一个版本号使用git log指令可以查看版本号如上图黄色字体为记录的提交过的版本号版本号可以缩略为前六位。而且使用git branch -v查看分支及版本号时分支名后的版本号是最新依次提交的版本号和git commit指令中添加的标记:git commit后再git push如果想将git commit的内容再提交一次需要先git pull。也可以使用git rebase [分支名] [版本号]来恢复以前commit的内容此时可以再git push到远程指定仓库的分支。4.fetch、merge、pull的区别本地有两个“看不见的分支”在同时工作一个是你的本地分支一个是远程仓库的远程分支。merge就是把本地的 main 和远程的 origin/main 重新接在一起。为什么需要“合并”假设昨天你拉完代码后同事往远程仓库提交了 2 个新文件远程已经往前走了一步你本地也改了一个文件本地也往前走了一步现在你本地和远程 走向了不同的方向就像两个人从同一地点出发各自走了不同路线。“合并”就是把这两条路的成果拼到一起变成一条统一的路。5.IDEA中使用GIT拉取代码在 IDEA 里按 CtrlTUpdate ProjectIDEA 自动做了两件事Fetch把远程的最新代码下载下来不碰你本地代码Merge把远程代码合并到你当前分支真正把你的代码和同事代码拼到一起所以你每天“拉代码”的操作实际上就是一次 fetch merge。

最新新闻

日新闻

周新闻

月新闻