当前位置:   article > 正文

【Git】使用总结_git pull

git pull

公司旧系统都是使用svn版本控制,只有新系统才直接用的git,最近我们把旧系统从svn版本控制转换到用git。转到git,主要考虑到以下几点:

  1. git强调个体,为了满足开发需求的快速迭代,两三个需求上线,不会因为一个需求没完成而耽误上线;而svn适合开发人数不多的项目开发。
  2. git速度快,灵活,任意两个开发者之间的冲突也很容易解决;
  3. git支持离线工作;而svn如果不能连接到服务器上,基本上不可以工作。

公司使用git的整个流程也制定了一个规范,主要是如何管理分支,大致是:

  1. master主分支,生产环境直接拉取该分支代码;
  2. dev开发分支,测试环境直接拉取该分支代码进行测试;测试通过后,才可合并到master主分支上,随后上线;
  3. 各个需求单独建立分支,需求联调完成后,才可合并到dev开发分支,进行测试。

切换到git了,一些常用的命令也需要重新积累起来了。

一. 新建代码库

  1. git init : 在当前目录新建一个代码库
  2. git init [project-name] : 新建一个目录,将其初始化为git代码库
  3. git clone [url] : 下载项目

二. 配置

git配置文件为.gitconfig,它可以在用户主目录下进行全局配置,也可以在项目目录下进行单独的项目配置

  1. git config --list : 显示当前git配置
  2. git config -e [–global] : 编辑git配置文件
  3. git config [–global] user.name “[name]”: 设置提交代码时的用户名
  4. git config [–global] user.email “[email address]”: 设置提交代码时的用户邮箱

三. 对文件的增删改操作

  1. git status : 查看状态
  2. git diff : 查看变更内容
  3. git add [file1] [file2] … : 添加指定文件到暂存区
  4. git add [dir] : 添加指定目录到暂存区,包括子目录
  5. git add . : 添加当前目录下所有文件到暂存区
  6. git add -p : 添加前会要求确认
  7. git rm [file1] [file2] … : 删除工作区指定文件,并将删除放入暂存区
  8. git rm --cached [file] : 停止追踪指定文件,但该文件会保留在工作区
  9. git mv [file-original] [file-renamed] : 修改文件名,并放入暂存区

四. 代码提交

  1. git commit -m [message] : 代码从暂存区提交至仓库区
  2. git commit [file1] [file2] … -m [message]: 提交暂存区的指定文件到仓库区
  3. git commit -a : 直接将工作区中自上一次commit之后所作的更改到仓库区
  4. git commit -v: 提交时显示所有diff信息
  5. git commit --amend -m [message] : 使用一次新的commit,替代上一次commit,如果代码没有任何变化,则用来改写上一次commit的提交信息

五. 分支

  1. git branch : 显示所有本地分支
  2. git branch -r : 列出所有远程分支
  3. git branch -a : 列出所有本地分支和远程分支
  4. git branch [branch-name]: 新建一个分支,但依然停留在当前分支
  5. git branch --track [branch] [remote-branch] : 新建一个分支,并与指定的远程分支建立追踪关系
  6. git branch -d [branch-name] : 删除分支
  7. git push origin --delete [branch-name] : 删除远程分支
  8. git branch -a | grep “feature_201906.*” | xargs git branch -D:按关键字匹配,批量删除本地分支
  9. git branch -a | grep -o “feature_201905.*” | xargs -I {} git push origin :{}:按关键字匹配,批量删除远程分支
  10. git checkout -b [branch] : 新建一个分支,并切换到该分支
  11. git checkout [branch-name]: 切换到指定分支,并更新工作区
  12. git checkout - : 切换到上一个分支
  13. git merge [branch] : 合并指定分支到当前分支
  14. git rebase [branch] : 衍合指定分支到当前分支
  15. git remote update origin --prune :获取最新的远程分支列表

六. 远程操作

  1. git fetch [remote] : 下载远程仓库所有更改
  2. git pull [remote] [branch] : 拉取远程仓库的更改,并与本地分支合并
  3. git remote -v : 显示所有远程仓库
  4. git remote show [remote]: 显示某个远程仓库的信息
  5. git remote add [shortname] [branch] : 新建一个远程仓库,并命名
  6. git push [remote] [branch] : 上传本地指定分支到远程仓库
  7. git push [remote] --force : 强行推送当前分支到远程仓库,即使有冲突
  8. git push -all : 推送所有分支到远程仓库

七. 撤销

  1. git checkout [file] : 恢复暂存区指定文件到工作区
  2. git reset [file] : 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
  3. git reset --hard : 重置暂存区与工作区,以上一次commit保持一致
  4. git reset --hard HEAD : 撤销工作目录中所有未提交文件的修改内容
  5. git reset [commit] : 重置当前分支的指针为指定的commit,同时重置暂存区,但工作区不变
  6. git reset --hard [commit] : 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致
  7. git stash : 暂时将未提交的变化移除
  8. git stash pop : 将暂时未提交的变化移入
  9. find . -name “.git” | xargs rm -Rf 删除本地.git文件

八. 查看信息

  1. git log : 显示当前分支的版本历史
  2. git log --stat : 显示commit历史,以及每次commit发生更改的文件
  3. git log -S [keyword] : 根据关键字,搜索提交历史
  4. git log [tag] HEAD --pretty=format:%s : 显示某个commit之后所有的变动,每个commit占据一行
  5. git shortlog -sn : 显示所有提交过的用户,按提交次数排序
  6. git blame [file] : 显示指定文件是什么人在什么时间修改过
  7. $ git log --author="huzhiting" --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "增加的行数:%s 删除的行数:%s 总行数: %s\n",add,subs,loc }'
    统计某个用户提交的代码量
  8. git log --author="huzhiting" --since=2022-08-01 --until=2022-12-31 --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'
    统计某个用户某个时间段提交的代码量
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/517953
推荐阅读
相关标签
  

闽ICP备14008679号