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