Git学习记录1
2021-06-01 本文已影响0人
你家门口的两朵云
一 想让git对一个目录进行版本控制,需要如下步骤:
#git 初始化:
git init
#查看当前git托管的文件夹中文件托管状态,红色为未托管,绿色已托管。
git status
#git托管指定文件
git add index.html
#git 托管文件夹中的所有文件
git add .
#生成一个版本信息v1 描述信息
git commit -m "v1.0 项目的第一个版本"
#查看版本记录
git log
二 设置git本地提交用户[ who I am ?]
#配置邮箱地址:
git config --global user.email "you@example.com"
#配置用户名:
git config --global user.name "Your Name"
三 git三大区域
如图:
git三大区域
三 git向后回滚的实现+git向前回滚的实现
#先查看历史版本
git log
#返回到指定的版本号
git reset --hard 7e1335f75466bbc25e
#说明:回滚到指定版本之后再使用git log 将不在显示当前版本之后的提交记录,
#要想显示可以使用如下命令查看记录ID:
git reflog
git reset --hard 记录ID
四 git分支开发+合并开发
#显示当前开发分区,master主分支,*master表示当前在master分支
git branch
#创建一个开发分支,dev分支和当前分支环境一模一样。
git branch dev
#修改当前所在分区(dev)为dev_2
git branch -M dev_2
#创建一个修复版本bug分支,bug分支和当前分支环境一模一样。
git branch bug
#切换到bug分支
git checkout bug
#修复完bug合并到主分支(先切换回到master分支)
git checkout master
#在主分支下合并分支
git merge bug
#dev分支合并完成不需要了可以删除,命令如下:
git branch -D dev
#删除远程分支(需要切换到其他分支才能删,自己不能删自己)
git push origin --delete dev_remote_branch
五 git关联远程仓库并推送到仓库(github为例)
#1.如果你是第一次创建项目,你可以
echo "# git_test"
git init
git commit -m "first commit"
#给远程仓库取别名origin(之后的origin就只带这个仓库)
git remote add origin https://github.com/flyme678/git_test.git
git push origin master
#2.如果你已经有一个本地git管理的项目,你可以
#给远程仓库取别名origin(之后的origin就指代这个仓库)
git remote add origin https://github.com/flyme678/git_test.git
#如果存在多个分支,需要多次推送
#推送到master分区
git push -u origin master
#推送dev_1分区
git push -u origin dev_1
#推送dev_2分区
git push -u origin dev_2
#3.如果显示仓库已存在,可以本地取消关联
#编辑如下关联配置文件,删除部分关联数据即可
vim .git/config
--------------------------
删除前:
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = https://github.com/flyme678/git_test
fetch = +refs/heads/*:refs/remotes/origin/*
--------------------------
删除后:
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
六 git远程仓库下拉(github为例)
#拉取远程仓库信息(下拉实际上会拉取所有分支,但不会显示,可以直接切换)
git clone 仓库地址
#切换拉取分支名
git checkout 分支名