git操作练习(1)

        因为工作需要,在读雅各布.纳热布斯基的《Git高手之路》,本文记录第一章使用的操作。
第一章搭建Git环境和创建Git版本库(init clone)。文件添加、状态检查、创建注释和查看历史记录。与其他Git版本交互(pull、push)。解决合并冲突。创建分支列表、列表切换和合并。创建标签。
        这一章模拟了两位开发人员,共同开发一个项目,使用GIT工具来管理项目。
        一、创建Git版本库
                本文使用带Web接口工具的网站(gitee)创建该版本库。

创建好仓库后,按照登录 - Gitee.com这个链接里面的操作,添加共同开发的用户。

        这里使用VMware创建了两个虚拟机,分别模拟两个开发人员的操作。这两个开发人员分别是Bob和Alice.
操作一:Bob拉取代码,编码,提交代码
        1、使用git clone命令从仓库拉取要开发的代码
        2、文件夹内sudo vim random.cpp添加文件。
        3、文件内编写了hello world程序
        4、编译  g++ random.cpp -o random
        5、运行  ./random  运行正常(输出hello world)
        6、删除运行的程序sudo rm random   
        7、添加要提交的文件git add data
        8、注释这次更改git commit -m "添加的注释部分"
        9、提交代码 git push

注:git log 查看git的历史提交记录。

操作二:Alice拉取代码,编码,提交代码
        1、使用git clone拉取代码
        2、使用sudo vim random,在hello world输出上添加一行hello git
        3、编译
        4、运行
        5、git status -s        查看代码更改状态,因为这里更改了random.cpp,所以random.cpp前面有M标志标识被更改。
        6、git add random
        7、git commit -m "添加hello git"
        8、git push

操作三:Bob重命名、移动文件
        目标:将random.cpp文件移动到文件夹src 中
        1、sudo mkdir src
        2、git mv random.cpp src/
        3、git status -s          查看程序状态
        4、git commit -a -m "将程序移动到文件夹中"
        5、git push
        ps:git commit -a 跳过 git add 步骤
        普通的提交步骤是先使用git add 修改文件,然后使用git commit -m "注释内容"提交
        使用git commit -a将自动完成上面的步骤,直接提交所有已跟踪文件的变更。这里的已跟踪文件指修改和删除的文件。如果是新添加的文件,将会被忽略。如果是新添加的文件,仍然需要手动git add添加。   

操作四:Bob修改文件名称
        目标:将src中的random.cpp文件重命名为rand.cpp
        1、git mv src/random.cpp src/random
        2、git status 查看文件状态
        3、git commit -a -m "将random.cpp 重命名为 rand.cpp"

操作五:Bob更新版本库(合并)
        背景:现在接着上面的操作四,需要使用git push了。但是Bob在push的时候发现error报错了。原来在Alice也在进行编码(这里Alice添加了一个readme.txt文件)
        目标:拉取远程的代码到本地,git自动合并后再使用push提交到远程
        1、git pull
        2、git push
        注:上面的操作中,1和2中间忽略了一步。因为合并代码后我们无法保证两个原本没问题的代码,合并后也没问题。所以在使用git pull拉取下来,自动合并之后。对合并后的代码进行测试。确保正常运行后再git push

操作六:Bob创建标签
        在 Git 中,标签(Tag) 是一个指向特定提交(commit)的不可变引用,主要用于标记项目的重要节点(如版本发布。)
        1、git tag -a -m "random v0.1" v0.1
        2、git tag list                查看标签列表
        3、git push origin tag v0.1        将本地标签v0.1推送到远程仓库
        //上面完成了创建添加标签,然后Alice使用git pull 拉取仓库中更新的标签

操作七、解决合并冲突
        问题背景:Bob和Alice同时修改了同一个文件,Bob先提交了,Alice再提交发现提交不上去(我认为提交前是需要先git pull, git pull 这里应该也是拉不下来。)这时候无法自动合并,所以需要手动合并冲突。
        思路:提交之前先pull,发现会有冲突,这时候先将本地文件暂存,然后拉取,然后暂存取出来,然后查看状态,然后手动合并(这时候冲突文件里面会有标记,哪些代码有修改),然后git push。
        1、git stash
        2、git pull
        3、git stash pop
        4、git status
        5、根据git status中出现的冲突文件,手动修改文件内容
        6、git push

操作八、添加和移除文件
        
问题背景:使用git add 添加了多个文件,但是多个文件中有一些文件是不需要的,是需要删除的。这时候git add了,如何移除这个文件。
        1、git add a add b
        2、git status                //查看暂存区状态
        3、git rm b                  //移除b        这时候会报使用--cached保留本地文件,还是-f 强制删除
        4、git rm -f b               //因为本地不需要这个文件了,这里选择删除
        5、git status                //再次查看状态
        6、git commit              //添加注释
        7、git push                  //推送代码

操作九、撤销对单个文件的修改
        问题背景:有个文件在调试的时候被修改了(比如LOG日志),但是提交的时候需要取消这些修改。
        上面这个问题在图形化git中直接还原就可以了。
        命令行如下:
        git status
        git restore rand.cpp        
        git status

操作十、创建分支
        创建新的分支在以下集中场景中会用到,开发新功能、修复缺陷、探索性工作、准备发布新版本、重构代码等。目的是为了隔离变更,保持主分支稳定。
        构建新分支操作如下:
        1、git switch -c new-branch-name         
              //创建一个新的分支,并切换到这个分支,git branch可以查看当前分支状态
        2、在这个分支内编辑
        3、git push提交代码

第二章:git操作练习(2)-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值