网站首页 > 技术文章 正文
一、提交本地代码到本地仓储,并提交到远程仓库
$ cd project_dir // 进入工程目录
$ git init // 初始化git仓库
$ git add . // 添加文件到本地仓库
$ git commit -m "init commit" // 提交代码到本地仓库
$ git remote add origin git@github.com:test/test.git // 建立本地仓库和远程仓库的关联
$ git push origin master // 提交本地仓库中的代码到远程仓库
二、直接克隆远程仓库到本地目录并建立关联
$ git clone https://github.com/gin-gonic/gin.git [local_dir]
当local_dir有值时,源文件会直接clone到该目录下,如果没有local_dir值,会自动创建gin目录,并将源码clone到该目录下。
三、合并远程master仓库源码到本地temp仓库
// 方法一
$ git branch // 在temp分支下
$ git fetch origin master //从远程的origin仓库的master分支下载代码到本地的temp分支
$ git log -p master.. origin/master //比较本地的仓库和远程仓库的区别
$ git merge origin/master //把远程下载下来的代码合并到本地仓库,远程的和本地的合并
// 方法二
$ git fetch origin master:temp //从远程的origin仓库的master分支下载到本地并新建一个分支temp
$ git diff temp //比较master分支和temp分支的不同
$ git merge temp //合并temp分支到master分支
$ git branch -d temp //删除temp
四、git创建与合并分支
1、创建dev分支,然后切换到dev分支
$ git checkout -b dev
-b 参数表示创建并切换,相当于以下两条命令:
$ git branch dev
$ git checkout dev
2、查看当前分支
$ git branch
3、然后就可以在dev分支上开发并在dev分支提交,提交完切换到master分支
$ git add readme.txt // 在dev分支添加readme.txt文件
$ git commit -m 'branch test' // 提交dev本地分支
$ git checkout master // 切换到master分支
4、把dev分支合并到master主干
$ git merge dev
5、合并完以后,删除dev分支
$ git branch -d dev
小结:
查看分支: git branch
创建分支: git branch <name>
切换分支: git checkout <name>
创建+切换分支: git checkout -b <name>
合并某分支到当前分支: git merge <name>
删除本地分支: git branch -d <name>
删除远程分支: git push origin --delete <name>
六、恢复git本地库删除的文件
// test.txt 代表文件名
$ git reset HEAD test.txt
$ git checkout test.txt
七、查看Git提交代码行数
// 按照提交人来进行统计
$ git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --since=2023-1-1 --until=2024-1-1 --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done
// 按照某个人来进行统计
$ git log --author="hanxiaojun" --since='2023-01-01' --until='2024-01-01' --pretty=tformat: --numstat -- . ":(exclude)vendor" | awk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "增加的行数 :%s 删除的行数:%s 总行数: %s\n",add,subs,loc }'
八、git只合并某个分支的文件到master
如果只想将 feature 分支的某个文件f.txt合并到master分支上。
$ git checkout feature // 切换到feature分支;
$ git checkout --patch master f.txt // 合并master分支上f文件到feature分支上,将master分支上 f 文件追加补丁到feature分支上 f文件。
你可以接受或者拒绝补丁内容。
如果只是简单的将feature分支的文件f.txt copy到master分支上;
$ git checkout master
$ git checkout feature f.txt
九、比较两个分支或者两个版本的文件差异
$ git diff branch1 branch2 --stat //显示出所有有差异的文件列表
$ git diff branch1 branch2 文件名(带路径) //显示指定文件的详细差异
$ git diff branch1 branch2 //显示出所有有差异的文件的详细差异
// 比较同一分支下两个提交版本的差异
$ git diff fed9c3fe9e161ed0a68959954bb8a8c950dc8eae a20f5a03a243fea6344cc3fd9e66569bddedd3c3 --stat
$ git diff origin/master --stat // 本地分支与远程分支差异的文件列表
// 可以自己扩展比较的差异
十、忽略文件操作
$ git update-index --assume-unchanged FILENAME // 添加本地忽略文件
$ git update-index --no-assume-unchanged FILENAME // 恢复本地忽略文件
$ git ls-files -v // 查看本地未忽略文件列表
可以在 .gitignore 文件配置忽略文件和目录。
十一、git强制pull远程仓库代码,覆盖本地代码
如果想放弃本地更改,用远程的替换本地代码时,可以用下面方法:
git强制覆盖本地qa分支:
$ git fetch --all
$ git reset --hard origin/qa
$ git pull origin qa
当然如果你想有冲突文件保存本地更改的时候,可以将git reset --hard 换成 git reset --soft
十二、git贮藏与清理
$ git stash // 贮藏变动
$ git stash list // 查看贮藏列表
$ git stash apply // 恢复贮藏
$ git stash drop stash@{0}
$ git stash pop // 来应用贮藏然后立即从栈上扔掉它
详细使用方法请参考: https://blog.csdn.net/qq_38666502/article/details/121869347
十三、 git tag操作
// 创建tag
$ git tag -a <tagname>
// 查看tag
$ git show-ref --tags
// 或者
$ git tag -l
// 删除本地tag
$ git tag -d <tagname>
// 删除远程tag
$ git push origin :refs/tags/<tagName>
最后附上一张图,拿走不谢。
【有错误请在评论区指正,有疑问或者有自己常用git命令请在评论区留言,谢谢。】
猜你喜欢
- 2024-10-27 git 入门教程之紧急修复(git checkout . 恢复)
- 2024-10-27 项目版本管理的最佳实践:飞流Flow篇
- 2024-10-27 DevOps(4)之分支模型(ps4如何构建画布)
- 2024-10-27 Git 在团队中的最佳实践——如何正确使用Git Flow
- 2024-10-27 鹅厂程序员干货分享 | 四种工作流,教你如何使用 GitHub
- 2024-10-27 Linux下git和github搭建使用教程(linux搭建git仓库)
- 2024-10-27 git这个小技巧非常实用,值得每个程序员学习
- 2024-10-27 Git实战002:Git快速入门使用详解(git简单教程)
- 2024-10-27 git 多人在同一分支上迭代开发时,如何保证分支提交历史保持线性
- 2024-10-27 Git基础知识(七)--分支开发工作流
- 11-26Win7\8\10下一条cmd命令可查得笔记本电脑连接过的Wifi密码
- 11-26一文搞懂MySQL行锁、表锁、间隙锁详解
- 11-26电脑的wifi密码忘记了?一招教你如何找回密码,简单明了,快收藏
- 11-26代码解决忘记密码问题 教你用CMD命令查看所有连接过的WIFI密码
- 11-26CMD命令提示符能干嘛?这些功能你都知道吗?
- 11-26性能测试之慢sql分析
- 11-26论渗透信息收集的重要性
- 11-26如何查看电脑连接过的所有WiFi密码
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)