git 超详细基本操作

1.git操作命令

(1)在现有目录中初始化仓库(进入该项目)
git init
$ git add *.c
$ git add LICENSE
$ git commit -m 'initial project version'
(2)克隆现有的仓库
$ git clone https://github.com/libgit2/libgit2
(3)查看当前文件的状态
$ git status(显示没有,进行创建文件,会显示未追踪文件)
$git status -s 命令或 git status --short
$git status 显示文件的状态(未追踪,待提交,显示有文件被修改过)
$git diff 可以查看文件被修改的内容
(4)跟踪新文件
$ git add README
(5)看暂存前后的变化
$git diff
(6)查看已经暂存起来的变化
$git diff --cached/--staged
(7)提交更新

(提交之前要确保CRU的文件是否被git add过)

$git status(查看是否均被暂存起来)
$git commit
(8)跳过使用暂存区(Stage)

(git 会自动将所所有已经追踪过的文件暂存起来一并提交)

$ git commit -a -m 'added new benchmarks'
(9)记录此次移除文件的操作
$rm filename (在工作区删除文件)
$git status 在版本库中会记录该文件处于delete状态
$git rm filename (在版本库中删除文件)
$git commit -m "remove file filename"
$git status
(10)移动文件
$ git mv file_from file_to
相当于一下三条命令
$ mv README.md README
$ git rm README.md
$ git add README
(11)创建分支
$git checkout -b defei
相当与以下
$git branch defei
$git checkout defei
(12)查看历史版本
$git log 查看提交历史,以便回到哪一个版本
$git reflog 查看历史命令,记录每一次命令
$git reset --hard commit_id
(13)暂存区

1.先对文件进行修改,添加到暂存区(stage)

$git add readme.txt(将文件添加到暂存区)

2.将文件提交到工作区,在对文件进行提交的描述
git commit 只负责将暂存区的文件提交
第一次修改–> git add --> 第二次修改 --> git commit 只会将第一次修改的内容提交
因为 git commit 只会提交暂存区的内容

$git commit -r " append a new file ! "(提交给更改,将暂存区的所有内容提交到当前的分支)

git commit --amend --no-edit

(14) 抓取远程的分支

git pull 抓取远程的新提交

$ git pull -r upstream quard

1.先用git pull 将最新的提交从 origin/dev 抓取下来,然后在本地合并,解决冲突,在推送
2.$git pull 如果失败,是因为没有建立本地 dev 分支与远程 origin/dev 分支的链接

3. $git branch --set-upstrem-to=origin/dev dev
  1. git pull 成功,但是合并有冲突,需要手动解决
(15)将当前分支推送到远程,

$git push -u origin master 第一次推送到master的时候,
如果你和你的同伴都对 origin/dev 进行了修改,他已经推送,则你将会推送失败
git 不但会将本地的master分支内容推送到新的master分支,
还会将本地的master分支和远程的master分支关联起来
在以后的推送或者拉取就可以简化命令

$git push origin master 推送最新的修改
$git push origin dev(要推送的分支名称)

如果推送失败,先用git pull 捉取远程的新提交

(16) push 推送到远程的分支
$git push -f origin master
(17)合并分支

$git merge dev (用于指定当前分支到当前分支)
查看分支:git branch
创建分支:git branch
切换分支:git checkout 或者git switch
创建+切换分支:git checkout -b 或者git switch -c
合并某分支到当前分支:git merge
删除分支:git branch -d
如果该分支没有被合并,如果删除,将会丢失修改,强行删除,需要使用-D参数

(18)修复bug
$git status 把当前工作现场“储藏”起来,等以后恢复现场后继续工作
$ git checkout master
$ git checkout -b issue-101
$ git add readme.txt
$ git commit -m "fix bug 101"
$ git checkout master
$ git merge --no-ff -m "merged bug fix 101" issue-101

默认是使用fast forwad模式,那么删除分支,将会丢掉分支信息
(合并) 强制使用 Fast forward 模式 ,git会在merge时生成一个新的commit
在分支历史上可以看出分支信息

--no-ff 表示禁用 Fast forward
$ git checkout dev
$ git status
(19)标签管理
$git tag <tagName> 直接就可以打上一个标签
$git tag 查看所有的标签名

找到历史提交的commit id,然后打上就可以了

$ git log --pretty=oneline --abbrev-commit
$git tag <tagName> <commitId>
$git show <tagName> 查看标签详细信息

还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:

$ git tag -a v0.1 -m "version 0.1 released" 1094adb

注意:标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。

$git tag -d <tagName> 删除
$git push origin <tagName> 推送某个标签到远程
$git push origin --tags 一次性推送全部尚未推送到远程的本地标签:

如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:

$ git tag -d v0.9

然后,从远程删除。删除命令也是push,但是格式如下:

$ git push origin :refs/tags/v0.9
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值