当前位置:   article > 正文

git 相关操作-提交代码步骤_代码提交

代码提交

https://blog.csdn.net/matrix_google/article/details/87988330

clone代码和切换分支

git clone -b v1.2 git@192.168.3.198:qq/pp.git

git checkout 分支名

# git从远程仓库中拉取新的指定分支:若本地分支不存在的情况:
git checkout -b 本地分支名称 origin/远程分支名称
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

提交代码

不要使用git add. ,有坑(会提交未跟踪的文件)

git add 文件全路径/名

git commit -m ""

git pull origin 远程分支名

解决冲突

git push origin 远程分支名
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

与master合并

gitlab的web页面上发起一个合入请求,并指定评审人

解决冲突

git stash的是改动的文件,也就是被Git追踪的文件,新添加的文件并没有被Git追踪,所以git stash并不会stash

git stash
git pull origin 远程分支名
git stash pop

git stash list
git stash clear
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

出现“你的分支领先origin/v.1.5 X个提交”

  1. 确定没有自己提交的东西
git diff origin/v1.5
  • 1
  1. 重置
git fetch --all  //只是下载远程的库的内容,不做任何的合并 
git reset --hard origin/v1.5  //把HEAD指向刚刚下载的最新的版本
git pull
  • 1
  • 2
  • 3

合并两个分支的代码 rebase

步骤:

  1. 在v1.5分支上执行git pull origin v1.5拉取最新
  2. 切到v1.5-dev分支,git checkout v1.5-dev
  3. 执行git rebase v1.5,有冲突解决冲突,解决后git add,再执行git rebase --continue
  4. 切到v1.5分支,git checkout v1.5。执行git merge --no-ff v1.5-dev
  5. 提到远程分支上:
git pull origin v1.5
git push origin v1.5
  • 1
  • 2

撤销操作

不删除工作空间改动代码,撤销commit,并且撤销git add

仅仅是撤回commit操作,您写的代码仍然保留

git reset HEAD^
  • 1

不删除工作空间改动代码,撤销commit,不撤销git add

git reset --soft HEAD^
//windows下
git reset --soft HEAD^^
  • 1
  • 2
  • 3

撤销add

  1. modify的文件
git reset HEAD <路径/文件名> //对某个文件进行撤销
git reset HEAD //上一次add 全部撤销
  • 1
  • 2

再使用git checkout – <路径/文件名>,会删除此文件的全部修改

git checkout -- 文件名
  • 1
  1. untracked文件
git rm --cached <路径/文件名>
  • 1

如果commit注释写错了,只是想改一下注释

git commit --amend
  • 1

img

分支

创建新分支

git checkout -b 新分支名
  • 1

将新分支推到远程仓库

git push origin 新分支名
  • 1

删除分支

git branch -d dev
  • 1

列出所有分支

git branch
  • 1

git 分支修改bug应用场景

总结:

  1. 在dev分支日常开发

  2. 出现bug(或紧急需求),需要立即处理部署

  3. git stash (备份工作区) 或 git commit (提交到本地) dev分支当前修改

  4. 切换至主分支 git checkout master

  5. 修改bug、commit \ push 到 master分支,并形成临时 test release ,测试

  6. 服务器部署git pull origin master,验收bug(或需求)

  7. 切换回dev分支 git checkout dev

  8. 把主分支的改动合并到dev分支,git merge master,可能会有冲突,手动处理冲突

  9. 如果第3部使用的是git stash ,则这里需要 git stash pop 把dev分支保存的修改再拿出来(也可能会有冲突,手动处理冲突),后继续dev分支的开发

git rebase 提交

git checkout master
git pull
git checkout local
#切换到local分支后, 就是修改代码

#修改完了, 就正常提交代码-------git commit

#如果有多次local分支的提交,就合并,只有一次可以不合并
git rebase -i HEAD~2  //合并提交 --- 2表示合并两个

#将master内容合并到local
git rebase master---->解决冲突--->git rebase --continue

#再起切换到master或其他目标分支
git checkout master
#将local合并到master
git merge local
#推送到远程仓库
git push
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

还有不清楚的基础命令,可以查找JavaGuide

git统计代码方法

统计某个用户在当前分支下提交的代码行数,会列出add、remove、total

git log --author=用户名 --since=2023-01-01 --until=2023-12-31 --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | grep "\(.html\|.java\|.xml\|.properties\)$" |awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/460185
推荐阅读
相关标签
  

闽ICP备14008679号