远程HelloWorld项目仓库,代码版本:master主干分支
git bash:本地客户端
####git clone 做的事情?
git工作区:本地的代码目录
更新本地仓库的代码,有人提交了新的代码,其它人可以通过git pull进行本地的更新
git status查看本地仓库与远程仓库文件数的区别,有哪些没有被上传
查看完成后,可以通过
git add 文件名 //上传单个文件
git add . //上传全部未上传文件
把工作区的代码改动,提交到暂存区当中
提交后,可以通过git status查看状态
把暂存区的代码提交到本地仓库的代码分支上
git commit -m "对文件的说明"
再用git status查看时,暂存区文件已经没有了
会给你提示,在本地的分支比远程仓库要新,就是更新了一些东西
$ git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
(use "git push" to publish your local commits)
把本地仓库推送到远程仓库
git push 远程仓库名(默认origin) master(本地分支):master(远程分支)
//现在本地分支和远程分支名字一样就可以省略
git push origin master
//把本地的master分支的代码推送到远程仓库的名字叫master分支上
查看日志,提交过的信息,修改的信息,针对于这一个远程库,也就是所有人只要用git push提交过修改,增加。都会有日志记录
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9aYwwcvu-1592048544073)(E:\lycgitbub\c++集群聊天室\错误汇总\3.PNG)]
commit 后面是commit id在本地仓库区回退时,需要使用
查看HEAD指针的改动日志
查看分支
查看工作区file文件和仓库中该文件最新版本的代码有什么区别
指向当前分支最新的一次代码修改,我们可以通过修改该指针的指向来回退各个版本的代码
git checkout -- <文件>
在工作区更改完代码后不想要了,用git checkout – <文件名> 就可以把本地仓库的相应文件覆盖掉你在工作更改的文件
工作区修改后的代码使用git add提交到暂存区后,不想要了,使用
git reset HEAD <文件> //不要文件
git reset HEAD //不要暂存区的全部文件
暂存区通过git commit -m “” 提交到本地仓库区后,发现代码有问题不想要了,使用
git reset --hard <commit id号>
//commit id号通过git log 就可以看到
//这个操作其实只是移动了HEAD指针,达到预期效果,实际上没有删除
到这个地步,你已经很牛逼了,通过git push提交到远程仓库后,可以使用
//先使用
git reset --hard <commit id>
//把HEAD指针移动到提交到远程仓库前的那一步
//再使用
git status
//查看状态,发现本地仓库落后于远程仓库的提交
//强制提交,提前看好有没有人修改后
git push -f origin master
第二种方法
git pull
//然后修改错误文件
git push origin master
两个人Agit pull得到代码版本V1修改后得到V2.
Bgit pull得到代码版本V1修改后得到V3.
B手速快,先更新到远程仓库
A再更新时,就出现问题了,git发现A的修改前的版本和远程仓库现在版本不一致,Agit push失败
//先使用
git diff HEAd -- 文件名
//查看本地修改文件与远程仓库文件的区别
//再使用
git pull
//合并最新的仓库,再使用
git add filename
git commit -m "..."
git push origin master
//推送
如果改的是同一个地方,git不会替你合并,需要你自己手动合并
git branch //查看本地分支
git branch -r //查看远程分支b
git branch -a //查看本地和远程的分支
lx@LAPTOP-ETA9C45R MINGW64 /e/lycgitbub/bitekeji (master)
$ git branch -vv //本地master分支追踪的是远程的master
* master 6921023 [origin/master] 学习git
创建分支并切换到新创建的分支中来
blx@LAPTOP-ETA9C45R MINGW64 /e/lycgitbub/bitekeji (master)
$ git checkout -b sortdev
Switched to a new branch 'sortdev'
lx@LAPTOP-ETA9C45R MINGW64 /e/lycgitbub/bitekeji (sortdev)
$
新创建的分支,git pul没有用,因为git branch -vv 查看,新分支没有追踪远程客户端任何分支
git checkout 分支名
git add filename
git commit -m "filname description"//提交到本地的sortdev仓库
注意此时不能使用git push origin master,推送不了
此时要切换到主分支
git checkout master
然后合并分支
也可以不合并
git push origin sortdev:master
git merge sortdev(分支名)
git merge 合并,直接把sortdev分支的代码合并到本地的master分支上来,不用再进行git add ,git commit -m
合并后直接推送
git push origin master
git branch -d sortdev //删除,如果没有合并过不执行
git branch -D sortdev //强制删除
A在其它分支修改main.cpp
B在master上也修改main.cpp
A在合并时,原来master的main.cpp已经更改了
需要手动合并,合并完后
创建远程分支和删除远程分支一般员工是没有权限的,所以此处的命令就不罗列了,大家感兴趣可以在网上查阅,这个操作只能由管理员来执行。如果是搭建自己的git私服代码托管,那就可以随便折腾了
员来执行。如果是搭建自己的git私服代码托管,那就可以随便折腾了