git 笔记记录
下面是本人在工作中学习到且使用到的git的用法,现在记录下来。
git命令记录,并不解析。
目录
一、git 上传流程
二、git 上传流程2
三、其他重点记录
四、git 标签
五、git 常用命令
①常用命令
②分支
③其他
六、本地代码初始化生成本地仓库后关联远端仓库并推送
一、git 上传流程
1.克隆项目
git clone git@192.168.0.0:xxx/robot/20/robot20.git
cd 进入文件夹
2.创建本地分支,并切换到该分支,并关联远程仓库分支
git checkout -b 本地分支 远程仓库分支
例如:创建本地develop分支,并关联远程仓库develop分支
git checkout -b develop origin/develop
之后可以使用 git branch -a
查看分支
注意:一般我们都会创建一个develop分支,并在此分支进行修改代码,然后再push上传到git中;我们都约定不会在master分支上进行修改代码和push等操作!(当然,也可以再创建一个分支关联远程仓库的develop分支,并在此分支修改代码,修改完毕后,合并到本地的develop分支,最后再切换到本地的develop分支进行push上传到git中。)
3.将修改的文件添加到本地仓库
可使用 git status
查看哪些文件被修改了
git add 文件名
git commit -m "注释"
4.同步项目代码
git pull
5.提交到远程仓库
git push
附:
分支概念理解
每个git仓库都会有一个主分支master
,一般规定都不会在这个主分支中进行修改项目代码;所以我们得新建分支,在新建的分支上进行修改代码,因为新建的分支都是master
的子分支,所以他们的资源是共享的。在新建分支上所做的修改操作都不会影响主分支。子分支修改完毕并commit
到仓库后,即可切换到主分支,使用git pull
同步。
关联概念理解
关联即将本地的分支与远程仓库的分支进行关联。公司的项目都需要将本地的分支和远程仓库的分支进行关联;关联后,就可以很方便的使用git pull
同步代码,和使用git push
上传代码了。
二、git 上传流程2
场景:现有三个分支,master - develop - dev_tem
master 和 develop 不做修改,develop负责提交,dev_tem负责修改代码;
现有需求,将dev_tem中修改的代码提交到本地仓库后,将deve_tem合并到develop,再同步远程仓库,再提交远程仓库。
流程:
-
在dev_tem分支将所修改的代码commit提交到本地仓库
git add 文件名 git commit -m "注释"
-
暂存当前的修改(如有需要)
git stash save '备注'
-
切换至develop分支
git checkout develop
-
将dev_tem分支合并到develop分支
git merge dev_tem
-
同步远程仓库代码到develop
git pull
-
将本地仓库提交的修改上传至远程仓库
git push
-
切换dev_tem分支
git checkout dev_tem
-
恢复之前的修改(如有需要)
git stash pop
-
将develop分支合并到当前分支
git merge develop
这样做了之后,master - develop - dev_tem 三个分支都是在同一起跑线;
三个分支的代码都是同步了的!(这里可以把master忽略掉)
三、其他重点记录
-
关联远端仓库
git branch --set-upstream-to=origin/远端分支 本地分支
-
push代码时没反应,可以使用如下命令
git push origin 本地分支:远端分支
-
忽略文件
git update-index --assume-unchanged 文件路径 git reset HEAD 文件路径 例: git update-index --assume-unchanged ../build/ git reset HEAD ../build/
-
放弃某一文件的修改
git checkout -- 文件名 # 放弃所有文件的修改 git checkout ..
-
删除误commit的文件
git rm --cached 文件名 git rm --cached -r 文件夹名 git commit --amend --allow-empty
-
文件commit后又有修改,将文件添加到commit中,不创建两个commit
# 会把暂存区的文件自动加入。 git commit --amend # 可以使用-a把工作区的文件也一起加入。 git commit --amend -a # 会弹出窗口修改comment,当然也可以使用"-m"参数指定comment。
-
查看冲突命令
git mergetool # 中文会乱码;有三个窗口:A区(LOCAL)是本地分支的修改;B区(BASE)是A和C的综合,需要将A和C的修改添加到B区;C区(REMOTE)是远程仓库的修改; # 如果A和C都修改到同一行,则复制粘贴顺序添加到B区就好;最后记得保存!!!
-
本地开发分支推送远端分支
git push origin 本地分支名:远端分支名 # 远端分支名可以随便写,会自动创建,建议与本地分支名一致
-
拉取远端仓库某一分支
git checkout -b 本地分支名 origin/远端分支名 # 本地分支名推荐与远端分支一样 # git checkout -b gy5a origin/gy5a
-
拉取远端分支最新代码
git pull origin 本地分支名
四、git 标签
-
查看所有标签
git tag
-
查看标签的提交信息
git show 标签名
-
在提交历史中查看标签
git log --oneline --graph
-
创建本地附注标签
git tag -a 标签名称 提交版本号 -m 附注信息 案例: git tag -a xxx-V1.0-release 2c0c390 -m "xxx项目版本发布,正式版本:V2.27.014.002"
-
查看标签的提交信息
git show 标签名
-
删除标签
git tag -d 标签名称
-
检出标签
# 理解:在此标签对应的提交版本中,新建一个分支;然后就可以在当初的这个版本中继续做开发或者查看代码。 git checkout -b 分支名称 标签名称
五、git 常用命令
①常用命令
1.创建本地git仓库
git init
2.提交文件到临时存储区
git add 文件名 或 git add 文件夹名 或 git add . // 添加全部
3.将临时存储区中的文件提交到本地仓库中
git commit -m "注释"
4.查看提交记录
git log 或 git log --pretty=oneline
5.回退版本
- 回退到上一个版本:
git reset --hard HEAD^
- 回退到上上一个版本:
git reset --hard HEAD^^
- 回退到前100个版本:
git reset --hard HEAD~100
6.回退后又后悔了
回退到指定的版本:`git reset --hard "id"` (id 写前几位即可,git log 可以查看对应的id)
7.查看历史命令
git reflog (也可以查看id)
8.查看当前工作状态
git status
9.查看工作区和版本库里面最新版本的区别:
git diff HEAD -- 文件名
10.让修改的文件撤销回到最近一次git commit
或git add
时的状态
git checkout -- 文件名
(如果本地文件被删除了,也可以使用这条命令恢复库中的文件)
11.把暂存区的修改撤销掉,重新放回工作区
git reset HEAD 文件名
12.本地文件删除了,删除git本地仓库中的文件
rm -fr 文件名
git rm 文件名
git commit -m "注释"
②分支
1.创建分支
git branch dev
2.创建dev
分支,然后切换到dev
分支
git checkout -b dev
或者
git branch dev // 创建dev分支
git checkout dev // 切换到dev分支
3.列出所有分支,当前分支前面会标一个*
号
git branch
4.列出所有分支,包括远程分支
git branch -a
5.合并指定分支到当前分支
git merge 分支名
(将分支名指定的分支合并到当前分支)
6.删除分支
git branch -d 分支名
7.新版git切换分支switch
创建dev
分支,然后切换到dev
分支
git switch -c dev
8.直接切换到已有的master
分支
git switch master
③其他
1.查看已经绑定的
git remote -v
2.查看本地分支与远程仓库有哪些绑定
git branch -vv
3.将本地分支与远程仓库分支关联
git branch --set-upstream-to=远程分支 本地分支
git branch --set-upstream-to=origin/develop develop
4.保存当前工作进度
会把暂存区和工作区的改动保存起来。执行完这个命令后,在运行git status命令,就会发现当前是一个干净的工作区,没有任何改动
git stash save '备注'
如果想要恢复,则使用 git pop
恢复原先修改的内容
5.查看当前保存的所有stash列表
git stash list
6.将某个stash的变更应用到当前工作目录,不删除保存的stash
git stash apply
7.将某个stash的变更应用到当前工作目录,删除保存的stash
git stash pop
8.删除某个stash
从stash列表中移除。如果不指定stash,默认会删除最新的stash。
git stash drop [stash]
git stash drop stash@{0}
9.删除所有的stash
git stash clear
10.恢复某个stash
git stash pop stash@{1}
11.创建一个分支,并关联远程仓库分支
git checkout -b develop origin/develop
12.清除
当切换其他分支而报错时,有可能是当前分支有些文件被修改了但没有commit上传,可使用如下命令删除掉,使用需谨慎!
git clean -d -fx
...后续还遇到新的命令再记录下来。
六、本地代码初始化生成本地仓库后关联远端仓库并推送
-
生成密钥
ssh-keygen
密钥路径:C:\Users\17634.ssh .pub文件
-
将密钥添加到github仓库
-
新建本地仓库后代码推送本地仓库
git init git add . git commit -m "第一次推送代码"
-
关联远端仓库
git remote add origin 远程仓库URL
-
代码推送
git push -u origin master # 可能会报错,没关系,接着下面操作即可
-
代码拉取
git pull origin master # 可能会报错,没关系,接着下面操作即可
-
使用rebase命令将本地和远程仓库同步
git pull --rebase origin master
-
代码推送
git push --set-upstream origin master
完!