Git操作命令

前言:在日常开发中,多人协作开发已为常态,并行开发提高开发效率的同时,项目版本控制是我们需要考虑的。多分支开发,主分支上线,代码合并、冲突解决是我们作为一名程序开发者需掌握的基础技能。

Git的文件管理:

Git 保存的不是文件的变化或者差异,而是一系列不同时刻的文件快照

在工作目录下的文件状态:

在工作目录下文件不外乎两种状态:已跟踪或未跟踪

已跟踪:已跟踪的文件是指那些被纳入了版本控制的文件,在上一次快照中有它们的记录,在工作一段时间后,它们的状态可能处于未修改已修改已放入暂存区

未跟踪:工作目录中除已跟踪文件以外的所有其它文件都属于未跟踪文件,它们既不存在于上次快照的记录中,也没有放入暂存区。

  • Untracked:未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged

  • Unmodify:文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件

  • Modified:文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改

  • Staged:暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified

Git基本命令操作

一、拉取远程主分支项目:

1.创建本地文件夹

2.在本地文件夹下初始化本地仓库
$ git init

3.拉取远程主分支代码
$ git pull http://ip:port/project/project.git

4.在开发工具中打开拉取的新项目

二、拉取远程分支项目

1.新建一个空文件夹

2.在新建文件夹下初始化本地仓库
$ git init

3.与远程origin master建立连接
$ git remote add origin master http://ip:port/project/project.git

4.将远程分支拉到本地
$ git fetch origin dev(dev为远程分支名称)

5.在本地创建分支并切换到该分支
$ git checkout -b dev(本地分支名称) origin/dev(远程分支名称)

6.将远程某个分支代码拉到本地
$ git pull origin dev(远程分支名称)

三、将本地创建的项目首次提交到Git

1.在项目文件夹下初始化本地仓库
$ git init

2.添加对指定文件跟踪
$ git add .

3.提交到本地仓库
$ git commit -m '提交代码'

4、git branch -M main

5. 添加远程仓库
$ git remote add origin url

6.拉取远程分支代码
$ git pull [remotename] [branchname] --allow-unrelated-histories
#该选项可以合并两个独立启动仓库的历史,解决首次创建远程仓库时顺带在仓库中创建后提交了文件

7.将代码推到远程
$ git push [remotename] [branchname]

四、查看提交历史

1.查看本地所有提交历史(q退出查看)
$ git log

2.查看远程分支提交历史
2.1查看远程分支
$ git branch -a
2.查看远程分支提交历史
$ git log <branchname>

3.查看指定条数每次提交的内容差异
$ git log -p(显示每次提交的内容差异) -2(指定条数)

4.查看每次提交的简略统计信息
$ git log --stat

5.使用定制要显示的记录格式展示提交历史
$ git log --pretty=format:"%h - %an, %ar : %s" --graph

6.限制输出长度
6.1限制查看条数
$ git log -<n>
6.2指定时间范围查看
$ git log --since=2.weeks (2周内)
$ git log --since="2020-08-01" (指定某个时间)
$ git log --since="2 years 10 days ago" (多久之前)

7.搜索提交说明中的关键字
$ git log --grep="keyword"

8.按作者搜索
$ git log --author="xianming"

9.git log输出乱码
https://blog.csdn.net/qq_383698639/article/details/81280512

五、撤销操作

1.查看文件状态
$ git status [filename]

2.提交暂存
$ git add [filename]

3.取消暂存
$ git reset Head [filename]

4.取消文件修改
$ git checkout [filename]

4.提交修改文件到本地库中
$ git commit [filename]

5.将代码移除版本库(可解决.gitignore文件修改失效问题)
$ git rm -r --cached [filename]

6.在上次提交之前未做任何修改前,修改上次提交的说明或者补充文件
$ git commit --amend '重新提交'

六、远程仓库使用

1.查看远程仓库
$ git remote

2.查看远程仓库的简写与对应的URL
$ git remote -v

3.添加远程仓库
$ git remote add [shortname] [URL]

4.与已有的远程仓库建立连接
$ git remote add [remotename] [shortname] [URL]

4.拉取远程仓库
$ git fetch [remotename]

5.推送项目到远程仓库
$ git push [remotename] [branchname]

5.重命名仓库名称
$ git remote rename [oldname] [newname]

6.移除仓库
$ git remote rm [remotename] 

七、创建标签与别名

1.查看标签
$ git tag 

2.模糊查看特定定标签
$ git tag -l 'ceshi*'

3.创建轻量标签
$ git tag [tagname]

4.创建附注标签(附注标签是存储在 Git 数据库中的一个完整对象。它们是可以被校验的)
$ git tag -a [tagname] -m [description] 

5.给已提交记录打上标签
$ git tag -a [tagname] [commitid]

6.共享标签,将标签提交到远程
$ git push origin [tagname]

7.检出标签(我们并不能真的切换标签,只能在特定的变迁上创建分支)
$ git checkout -b [branchname] [tagname]

8.创建别名
$ git config --global alias.[alia] [command]

八、分支管理

1.查看使用过的分支
$ git branch

2.查看使用过的分支最后一次提交
$ git branch -v

3.查看所有分支
$ git branch -a

4.查看已经合并到当前分支的分支
$ git branch --mereged

5.查看没有合并到当前分支的分支
$ git branch --no-mereged 

6.删除分支(必须合并所有分支才能删除)
$ git branch -d

7.回退分支到某一版本
7.1查看分支的提交历史获取版本号
$ git log --graph
7.2选择回退方式
7.2.1回退到某一版本A,该版本A后的所有版本丢失
$ git reset --hard <versionnumber>
$ git push -f <remotername> <branchname>    ##强制提交到远程
7.2.2撤销某一版本A,版本A之后的版本保留(A版本之后改动的内容保留,但是同一文件中改动的内容会出现冲突),新创建一个版本
$ git revert -n <versionnumber>
$ git add .
$ git push <remotername> <branchname>

参考文献:

https://www.w3cschool.cn/lvmihi/1fhrwozt.html

https://www.cnblogs.com/utank/p/12180531.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值