赞
踩
创建文件后
使用git config --global user.name (自定义用户名)
git config --global user.email (自定义邮箱,最好填真实的)
然后是 git init初始化本地库 才可以进行后续操作(直接可以在文件里用git打开)
初始化后就可以在里面进行查询状态 ll -a
使用 git add “这里就是文件的名称” 也可以是git add . 这个命令就是暂存所有文件
(我这里的是创建了一个名为hello.txt文件来做以测试 )
add暂存之后可以继续使用 git status来查询 这时 add的文件就变为绿色了
说明文件hello.txt已被追踪暂存
还可以使用 git restore --staged "文件路径" 来取消暂存
git restore --staged . 这个就是取消所有
就不截图演示了 很简单的
使用git commit -m “这里写上日志信息 我写的是test1” hello.txt (这里是要提交的文件名字)
这里就提示提交成功 d28fe04是版本号 后面就是自定义的日志信息
继续使用 git status来查询
当前会提示:
这是上面查询的状态:
这里两张的图片可以作对比
第一张说的是已经提交过文件 第二章则是将没有提交的文件给你列了出来 可以用这个命令来查询有没有提交成功
还可以使用 git reflog 来查询提交过的历史版本
commit 是完整的版本号
下方是 一开始设置好的nema和emil
data就是提交的时间 test1就是自定义的日志信息
使用vim helle.txt来修改文件 这只是用命令修改的自定义文件 同理在编辑器里修改了文件之后也是需要再次提交的
很明显 修改之后 再次查询这里就提示有一个文件未跟踪暂存 同时 这里的modified提示这个文件被修改了
我们可以再用git add 来进行暂存跟踪 如上图:暂存成功 再次查询就提示我们已经提交了 相应的代码也变成了绿色
但是这里只是暂存了 所以还需要再提交一次的
这里就显示提交了 并且显示了版本号以及自定义的日志信息,以及被修改的数据有多少行
再次查询就会发现所提示的信息如上面的如出一辙,包括版本号 自定义的日志信息,以及提交时间
并且指针也会指向当前的最新版本
这就很好的诠释了修改之后 我们的文件需要再次过一遍暂存 提交的流程,包括修改的信息 时间都会被存到git
ps:我们也可以使用 cat (文件名路径)来查询文件的内容
使用 git reflog查询版本号 这里的指向是 moving to 327365b commit自定义日志也是指向了test2
我们还可以用查看本地文件的形式来观察修改的版号:
这里打开之后就会看到版本号的完整版:
我们所写的只是前七位数
查询完成之后 我们就可以用
git reset --hard (版本号七位数)
这里可以直观的看到 moving to 指向了d28fe04
自定义日志信息 commit 指向了test1
同样 可以用cat 来查询内容
是的,改变了 我们还可以到本地文件查看版本号信息:
也同样改变了 我们输入的正是前七位数
但是我们想要回到之前的版本 同理 输入之前的版本号就可以了:
这样我们就可以做到版本之间穿梭
就是使用git reset ==hard (版本号)我的建议是配合git reflog使用 这样可以更直观的看到版本号以便不出错的进行穿梭
git分支在开发项目中是很重要的 git主打的就是分支开发 分支的含义就是可以在一条开发线上分发出多条分支线供开发人员进行开发 在分支线上 可以进行编写测试 最终完整稳定了还可以合并到主线上,如果不满意这条分支还可以直接进行删除操作
分支的常用命令:
git branch -v 查询分支:
这里显示只有一条master分支 以及版本号 以及自定义日志信息
接着就使用 git checkout (分支名称)来进去到分支中:
进入之后查询 我们就会发现后缀已经变成了我们自定义的分支了
接着还可以进行编辑一下我们的本地文件:
再查询状态就会提示未暂存跟踪
既然提示了 那就跟着提示走 跟踪提交就是了:
也可以cat 查询一下 这里就会发现 已经改变了:
再用git reflog查询:
这里会形成一个新的版本号 会指向hot-fix 这就是分支下的文件版本号
日志指针就指向了hot-fix1我们自定义的日志信息上
其中:moving也指向了我们的master主线上的to hot-fix分支上
版本号信息也指向了327365b上
还可以通过本地查看文件:
这里可以看到多了一个文件 这就是分支文件的版本号
同样 打开文件 里面版本号也是对应的:
合并分支要在主线上 进行合并分支 所以我们要先回到主线上:
再查看一下当前文件:
接着 我们使用 git merge hot-fix 来进行合并:
这里就会提示合并成功 并提示了合并了哪些内容 增加了哪些删除了哪些:
我们再来查看一下文件:
可以看到 文件变化了 增加了一些内容 也删除了一些内容
合并分支时,存在两个修改的文件在合并时会出现冲突,这时需要人为决定新代码的内容
先进入到文件中 编辑一下:
编辑好之后也是需要 add 和commit来跟踪提交的:
再查看一下编辑的内容 在最后一排写了一排p
然后再去到支线hot-fix上再修改 跟踪 提交:
然后我们进入到主线master上来合并试试:
这里就提示我们报错了 git不知到该怎么合并内容了 它不敢动
这里箭头所指提示就是MERGING提示合并中 然后我们查询一下gir status 它说需要我们手动进入:
那我们就进入:
可以看到下方将需要修改的代码给我们用<<<====>>>>标记出来了 我们需要在这里面做修改
那我们就修改一下 直接在里面删除字符就行:
保存再出来 也是需要进行暂存跟踪和提交的 不过这里要注意的是 这里提交的时候不要带上文件名字了 直接带上日志信息就可以了 带上文件名字会报错 如图可以看一下:
提交好了之后也会给我们返回一个版本号 再查看一下内容 就变成了我们刚才进去修改的样子了:
然后我们再来进入到支线上查看文件内容 还是之前的模样:
这就是冲突合并的解决方法
分为团队内协作和跨团队协作:
团队内协作:
创建远程仓库:一个人创建远程仓库,并将其推送到Git服务器上,例如GitHub或GitLab还有国内的Gitee。其他人可以通过克隆该远程仓库来获取代码。
推送分支:当开发人员完成自己的开发工作后,可以将自己的分支推送到远程仓库,供其他人查看和合并。使用命令git push origin <分支名>
可以将本地分支推送到远程仓库。
克隆远程仓库:其他人可以通过克隆远程仓库到本地来获取代码。使用命令git clone <远程仓库地址>
可以将远程仓库完整地复制到本地,并自动创建一个本地仓库。
开发和提交:在自己的分支上进行开发工作,使用命令git add <文件名>
将修改的文件添加到暂存区,使用命令git commit -m "<提交信息>"
将暂存区的修改提交到本地仓库。
拉取更新:在协作开发过程中,其他人可能会推送新的修改到远程仓库。开发人员可以使用命令git pull origin <分支名>
来拉取远程仓库的更新,并将其合并到本地仓库
跨团队协作:
使用fork拿出来 再用clone到自己的仓库
Fork是Git中的一个重要概念,它允许开发者在自己的GitHub账号下创建一个与原始项目完全独立的副本。Fork操作通常用于贡献代码或者对原始项目进行修改。
当一个开发者Fork一个项目时,GitHub会在该开发者的账号下创建一个与原始项目完全独立的仓库副本。这个副本是一个全新的仓库,与原始项目没有任何关联。
开发者可以在自己的Fork仓库中进行修改和开发工作,而不会影响到原始项目。开发者可以将修改后的代码推送到自己的Fork仓库,并向原始项目的所有者提交Pull Request(PR)再由审核者进行审核再拉取merge到自己的库。
Pull Request是开发者向原始项目所有者提出的一种请求,请求将自己的修改合并到原始项目中
其实远程仓库操作都一样 我这边github的话由于网络不好push不上去 所以选择了gitee
登录gitee 点击右上角的加号可以创建新的库 如图:
这就是创建好之后的界面 下方有相应的代码提示 复制输入框的http开头的地址来到git界面
这里最好是给我们的库起一个别名 如图所示:
用git remote add (别名)http://(你自己的库的地址):
之后 再用git remote -v 来查询 下方会出现两个 这两个你可以做拉取 提交 所以是两个名字
下方的Ajie是我的gitee的别名 待会使用的就是Ajie这个别名
推送成功之后就会弹出一个登录框 登录自己gitee账号密码
这里我登陆错误了一次 这边就提示了红色的字:
下面的就是登录成功了
先在网页我们编辑一下:
先编辑 我这里编辑在最后一行写了一排CCC
然后 回到命令框:
使用 git pull Ajie "master" 来进行拉取网页上编辑之后的master节点上的文件:
这里显示了 从哪里拿的 以及节点 还有版本号 是哪一个别名下的信息,以及新增了多少行内容 下图可以清晰的看到新增了一行内容
我们再使用查询 以及查看文件内容 :
这里也可以清楚的看到
在随意一个位置创建一个文件夹 文件夹中打开命令行工具
打开网页 找到仓库 点击这里找到仓库的地址:
克隆成功就会提示以下消息:
可以到文件夹查看一下:
这里就可以看到克隆成功了
以上只是一些简单的应用 仅代表个人的理解 如有不对的地方欢迎大家指正
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。