git 版本管理使用初体验

Pro Git 中文版(第二版)

git创建分支并上传文件流程

(git  branch  -a :显示远程所有分支)(如果想看远端的,先git fetch一下)

  1. 创建分支XXX:git  branch  XXX_branch
  2. 切换到分支:  git checkout  -b  XXX_branch (第一次才需要-b)
  3. git add xxx_folder
  4. git commit -m “xxx is important”
  5. git push origin XXX_branch   (只有push之后,别人才可以从远端分支看到你的文件修改)

git 配置:

启用默认的颜色设置可以使用如下命 

git config --global color.ui true


 

1、为了解决冲突不得已采用回退版本的方法(记得提前备份好,自己修改的文件)

git reflog:可以查看操作记录以及对应得版本号;

git reset --hard 版本号  :回退到该版本;

git reset --hard  file:回退某一个文件

(git log 命令可以显示所有提交过的版本信息;加上参数  --pretty=oneline,只会显示版本号和提交时的备注信息)

`git reset --hard origin/master`是一条git命令,意思是将当前分支的HEAD指针和工作目录回退到远程仓库的`origin/master`分支所指向的提交。 具体来说,这条命令会删除当前分支上的所有本地提交,将HEAD指针移动到`origin/master`所指向的提交,并将工作目录恢复到该提交的状态。这样做会导致本地的所有修改和提交都被丢弃,并且无法恢复。 使用这条命令的目的通常是要丢弃所有本地修改,重新从远程仓库的`origin/master`分支拉取最新的代码,并回到一个干净的状态。

2、不要轻易pull 某一整个分支到自己的分支上;(会带来大量文件冲突,当你想commit或者再pull时)

3、创建分支并上传文件到分支:

  1. 创建分支XXX_branch:git  branch  XXX_branch
  2. 删除分支XXX_branch:git branch -d XXX_branch)
  3. 切换到分支:  git checkout  XXX_branch
  4. git add xxx_folder  (添加变更文件到更新list)
  5. git commit -m “xxx is important”  (提交更新list到repo)
  6. git push origin XXX_branch   (把本地repo的改动推送到远程的XXX_branch分支上)

4、指定更新某文件

  1. git checkout jvp      #指定更新分支
  2. git checkout 文件夹  #指定文件夹更新
  3. git checkout  .*     #更新当前文件夹下所有文件

5、查看当前所在分支:git branch

6、git status

  1. git status 命令查看哪些文件处于什么状态。
  2. git status 命令的输出十分详细,但其用语有些繁琐。 Git 有一个选项可以帮你缩短状态命令的输出,这样可以以简洁的方式查看更改。 如果你使用 git status -s 命令或 git status --short 命令,你将得到一种格式更为紧凑的输出。
  3. git status .  :只看当前目录的文件状态

7、git上对同一个文件多人进行维护的流程(不知道有没有更好的方法)

9、git clone URL (从git repo中导出最新的完整database)

10、移动或重命名:git mv

11、比较文件的不同:git diff


遇到冲突时:

只保留远端的文件:

1.先git pull 使本地的版本状态与远端同步;

git checkout --theirs  origin/ABC  ./lw01 (说明:拿出远端ABC分支 当前目录下的lw01文件夹)(用这个之前,最好先git pull一下)


只commit 某一个文件:git    commit   --m "mssage for commit"  xxxx.file


git log filename:  可以看到fileName相关的commit记录

git log -p filename: 可以显示每次提交的diff

git log --pretty=oneline 文件名 :使用下面的命令可列出文件的所有改动历史,注意,这里着眼于具体的一个文件


git clean :从你的工作目录中删除所有没有 tracked,没有被管理过的文件。

git rm filename:删除文件filename


Git add:常用操作

git add -A  提交所有变化

git add -u  提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)

git add -u :/    对整个分支起更新作用 (u: update)

git add -u .     只对当前目录起更新作用

git add .  提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件


比较文件的两个commit id的差别

git diff   comit_id0  commit_id1   --(空格)filename


使用下面的命令可列出文件的所有改动历史,注意,这里着眼于具体的一个文件

git log --pretty=oneline 文件名

可以显示每次提交的diff

git log -p filename


git  submodule:

使用  git submodule  ,你可以将一个外部项目添加为当前项目的子模块,并通过 Git 来跟踪和管理子模块的版本。

git子模块允许你将一个 Git 仓库作为另一个 Git 仓库的子目录。

简单点说,就是库中库,就是一个git repo1下面可以包含其他git repo2作为repo1下面的文件;

git submodule  的优点包括:

1. 模块化开发:允许将项目拆分为多个独立的模块,每个模块可以独立开发、版本控制和管理。

2. 复用代码:可以方便地共享和复用其他项目的代码,避免重复编写。

3. 版本控制:子模块的版本可以通过 Git 进行跟踪,方便管理和回滚。

4. 灵活性:可以在项目中灵活地引入和移除子模块,便于项目的扩展和维护。  

git submodule  的缺点包括:

1. 复杂性:使用子模块增加了项目的复杂性,需要理解和管理多个独立的 Git 仓库。

2. 初始设置:添加子模块时需要进行一些初始设置,包括添加子模块命令和初始化子模块。

3. 潜在的冲突:当子模块和主项目的更改发生冲突时,可能需要手动解决冲突。

4. 依赖管理:子模块的依赖可能会引入额外的复杂性,需要确保子模块的版本与主项目兼容。

总的来说, git submodule  对于管理复杂项目或需要复用代码的项目非常有用,但需要注意其潜在的复杂性和管理成本。在决定是否使用  git submodule  时,需要权衡项目的需求和团队的技术水平。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值