git使用教程

git 项目首次管理

在需要git管理的地方 创建一个文件夹

 

 

git init;  //初始化目录中创建GIT文件,来管理目录下的所有文件

 

 

 

 

需要配置:

$ git config --global user.email "xxx@139.com"

$ git config --global user.name "xtest"

 

git 忽略指定格式文件

首先在根目录中创建.gitignore

 

 

#精准指定

test.class

#git支持正则表示

*.class #所有class不再追踪

#指定某个文件除外

!test.class

#忽略子目录下test.txt文件

/*/test.txt  # 这个只有第一个一级子目录中的(如果有多级子目录还是会被识别)

/**/test.txt  # 这个所有子目录中的都将被忽略

src/ 忽略SRC下的所有文件

src/**/test.txt 忽略SRC下的所有test.txt文件

 

git 初次下载远程仓库代码

 

$ git clone https://gitee.com/mwlift/test.git

输入gtiee码云帐启和密码

 

请输入密码

 

表示下载成功

 

git 基本使用

修改了当前文件后

1、git add test.txt 指定某一个进行提交

git add .(后面有一个点,意思是将你本地所有修改了的文件添加到暂存区)

2git commit -m""(引号里面是你的介绍,就是你的这次的提交是什么内容,便于你以后查看,这个是将索引的当前内容与描述更改的用户和日志消息一起存储在新的提交中)

 

 

 

git 版本切换

git log 查看当前版本

 

git reset --hard HEAD^   切换到前一个版本  HEAD^^ 切换到前两个版本

git reflog  查看所有的提交记录

git reset --hard 453a7a2       从提交的记录commitID中复制,恢复到指定位置 

 

 

git 查看日志

git log 查看当前日志

git log --author="alex"  只查看指定某个开发人员提交记录

 

 

Git log --pretty=oneline  每个版本只显示一行

 

 

 

git reflog  查看所有,包括历史记录

 

 

 

git 查看提交commitId内容

 git show commitId;

 

 

git代码回滚

1、修改未 git add

 git checkout -- test.txt  #回滚指定的文件

 git checkout -- file_name  #指定回滚对应的文件夹下所有文件 (如果文件夹都被误删了,就是恢复整个文件夹和里面所有文件)  

git checkout . 丢弃所有修改

 

 

 

 2、修改已 git add git commit;

回退先git reset HEAD test.txt  

 

git checkout -- test.txt

 

 

3、已add 并且已commit,未push到远程

就像下面创建了一个c文件:

 

git reset --soft HEAD^ 回退并保留自己新增的内容

(

--soft  是只回滚已commit文件 回到刚修改的状态,需重新add

--herd 强制一致。其中有些git add了,有些git commit了,通通不管,可以一个命令全恢复,都需要重新add

-- mixed 默认, 就是切换到指定commit节点

)

 

git分支切换

 

git branch  -a 查看所有的分支 *代表当前分支(包括远程分支)

 

 

 

 git checkout -b dev_alex  创建分支

 

 

切换到主分支上

git checkout master

 

 

 

 git checkout dev_alex

 删除分支 -- 先要切换到其它分支上才能删除当前分支以外的分支

Git branch  -d dev_alex

 

如果出现

 

 需要 用 -D 大D来删

 

 

git rebase 合并commitId和修改commit message

 

#最新提交的前两个
git rebase -i HEAD~2
会跳出两次窗口

--修改commit message
1、第一次弹出是需要我们告诉git,你需要操作哪些commitId把pick改为reword
2、第二次弹出是个重情编辑对应的commit message
-- 合并commit id
1、第一次弹出是需要我们告诉git,你需要操作哪些commitId把pick改为Squash
2、第二次弹出是个重新编辑对应的commit message(因为是合并,这里会有多条,一般只用保存一条就可以了)

 

 

git配置

查看配置

git config -l  查看全局所有配置

 git config --local -l 查看仓库级配置

git config --global -l

git config --system -l 系统级别配置

 

 

git config --local -e 编辑配置

 

git config --global --add user.test alex    增加一个配置

git config --global unset user.test          删除一个配置

 

 

自定义快捷命令

 

 

git config --global alias.st status

 

 

git 打标签

 

git 远程仓库

 

git remote 查看当前有哪些远程仓库

 

git remote -v 查看远程仓库对应的地址

git remote add origin https://gitee.com/mwlift/test.git         #新增远程仓库关联关系

 

 

git remote remove origin    #删除远程仓库关联关系

 

 

git push -u origin master  首次推代码报错

 

 

ssh-keygen -t rsa -C "alexMagicDesign"   本地生成公钥   地址:C:\Users\我\.ssh   

一路回车就可以了

 

 

 

 

打开 id_rsa.pub文件并复制

在代码仓库加入这个公钥

 

 

再次推送,我的电脑会提示安装.NETFramework版本是v.4.7.2

 

 

 

 我弄了半天,没有安装成功,电脑不支持,索性点【取消】还是可以继续的,

 由于我测试时绑定的是码云,所以这里请输入码云的帐户和密码

 

 

 

这样就推送成功了,可以去码去上看一下,代码和现在本地已经一致了

 

 

git clone

新建一个文件夹管理

找到需要下载的对应下载连接

注意是ssh 

 

 

 

复制地址

 git clone git@gitee.com:mwlift/test.git

 

 这样就把代码克隆下来了

 

 

#下载master代码

 git clone git@gitee.com:mwlift/test.git

#下载指定分支代码

 git clone -b dev_alex git@gitee.com:mwlift/test.git

 

 

 

pull 拉取最新代码过来

 

首先在其它地方把代码修改,内容提交了

 

 提交成功后,线上代码已和clone文件夹代码不一致了

这时只需要用git pull  拉取一下最新代码就OK

 

 

 

 

模拟git项目开发过程

1、创建分支dev_alex

 

 

 

 

 

 

 

2、拉取代码(主分支和其它分支的ssh路径是一样的)

git clone git@gitee.com:mwlift/test.git

 

 

3、切 dev_alex分支代码

git checkout dev_alex

 

 

4、模拟dev_alex分支本地修改

 

 

5、上传alex_dev代码到远程仓库

git remote add dev_alex_req https://gitee.com/mwlift/test.git

git push -u dev_alex_req dev_alex

 

 

远程仓库已可以看到最新加的内容

 

 

6、模拟master主分支已被其它开发合并了修改,目前master与dev_alex不一致

 

 7、模拟代码合并(解决冲突)

(1) git checkout master 切换到主分支

(2) git pull   拉取主分支最新代码

(3) git checkout dev_alex   切换回开发分支

(4) git merge master  dev_alex分支合并master

(5) 手动解决冲突,再提交

 

 

8、冲突解决后并提交到远程仓库后,就可以 对远程仓库 的版本进行合并操作,就不会再有冲突了

 

 

常见开发流程

 

#########平时拉取代码############

#拉取最新代码
git pull

2、看是否成功
成功就直接开始开发
发生冲突就git stash==>继续git pull==>pull完成后git stash pop查看冲突地方,并解决冲突

 

posted @ 2021-10-08 01:03  Alex_designer  阅读(188)  评论(0编辑  收藏  举报