> 文章列表 > Git使用教程、命令

Git使用教程、命令

Git使用教程、命令

Git使用教程、命令

基本配置

git的配置文件位置:

win:   c:\\users\\<userName>\\.gitconfig
linux: /home/<userName>/.gitconfig              # 个人/etc/gitconfig                           # 系统全局# 修改git init时的默认分支为master, 但gitlab上创建仓库时默认分支是main,可以修改git init的默认参数,使其初始化为main1)、直接修改配置文件
如果已有[init]则修改其下配置,如果没有,则新增,其他配置项不变:...[init]defaultBranch = main					# 修改默认初始化分支
2)、命令设置git config init.defaultBranch                     # 查看默认分支git config --global init.defaultBranch "main"     # 设置默认初始化分支,缺省状态默认为“master”

配置项及命令:

git config --list                                 # 查看全部配置
git config --global --list                        # 查看个人配置
git config --system --list                        # 查看系统配置
git config user.name                              # 查看用户名
git config user.email                             # 查看用户邮箱
git config init.defaultBranch                     # 查看默认分支# 系统级
git config --global user.name “用户名”             # 设置用户名
git config --global user.email “邮箱”              # 设置用户邮箱
git config --global init.defaultBranch "main"     # 设置默认初始化分支,缺省状态默认为“master”# 用户级、项目级,存放于当前项目.git文件夹下的config文件中;当用户级和系统级同时存在时优先采用用户级;实际开发过程中极少使用用户级
git config user.name “用户名”             # 设置用户名
git config user.email “邮箱”              # 设置用户邮箱ssh-keygen                              # 生成ssh key# 删除配置
git config --global --unset init.defaultbranch 用户名和用户邮箱只用区分用户,可以时不存在的

基本命令

git add [<.>, <file>]                   # 提交追踪的文件到仓库,.表示当前目录下所有文件
git commit -m "message"                 # 为本次代码提交做备注说明,比如做了新增、更新了哪些功能等等
git push origin HEAD:refs/heads/master  # 提交到指定分支 mastergit status                              # 检查状态
git reset                               # 撤销git add
git log                                 # 查看提交/版本/历史记录
git diff [<file>]                       # 查看当前工作区的file与仓库中file的不同的地方,就是查看做了哪些修改git stash                               # 暂存当前状态
git stash list                          # 查看保存的工作场景
git stash pop                           # 恢复保存的内容,并把stash中的内容删了

分支控制

git branch -va                          # 查看分支列表
git branch                              # 查看当前分支
git checkout -b newBranch               # 创建新分支newBranch并切换到该分支
git checkout dev1.0                     # 切换dev分支
git push origin dev1.0                  # 提交到dev分支
git branch -d dev                       # 删除本地分支
git branch -D dev                       # 强行删除本地分支
git push origin --delete branch         # 删除远程分支及其追踪分支
git remote -v                           # 查看当前git远程地址
git branch -m master main               # 重命名分支master为main
git pull origin <远程分支>:<本地分支>      # 将远程指定分支 拉取到 指定本地分支上
git pull -f origin 远程分支名:本地分支名   # 强制拉取合并
git pull origin <远程分支>               # 将远程指定分支 拉取到 本地当前分支上git remote remove <name>                # 删除某个关联仓库
git push --set-upstream origin master	# 设置默认push分支

推现有文件夹

git init
git remote add origin git@git.xjzh.tech:path/proj.git
git pull origin main                    # 先pull,将远端仓库的建项目时的初始化文件拉下来
git add .
git commit -m "Initial commit"
git push -u origin master

迁移git项目

git clone --mirror 项目原代码仓库地址 //将原仓库远程项目克隆到本地会生成一个 .git 文件
cd 生成的.git文件 //cd 进入(xxx.git)文件
git push --mirror 新项目代码仓库地址  //将本地克隆推送到新服务器

切换和合并分支:

    合并分支前请确保当前工作目录的所有修改已提交到代码仓库,否则将可能导致某些修改被丢弃并不可找回例如:仓库有3个分支,分别为master、dev1.0、dev2.0,master为可对外应用的分支,dev1.0为提交给测试的分支,dev2.0为开发分支现在dev1.0分支的所有功能已经测试通过,我当前在dev2.0上又做了更新,现在要将dev1.0合并到dev2.0上,需要先将所有修改提交到dev2,否则当前工作区的修改将会倍舍弃,然后再进入到master分支,最后将dev1.0合并过来将dev1.0分支的修改合并到master分支git checkout master             # 切换到master分支git merge dev1.0                # 将dev1.0合并过来git checkout dev2.0             # 返回到dev2.0分支,回到开发分支git cherry-pick id
有冲突时:git cherry-pick --abort     // 放弃合并git cherry-pick --continue  // 解决某些冲突后,继续查看下一个冲突

异常处理

(main|MERGING) # 合并、提交冲突
git reset --hard head # 重置当前的分支至上一次提交状态

如果时merge出现问题,就针对提示问题进行修复后提交# 冲突could not apply       after resolving the conflicts........git checkout --theirs/git checkout --ours

git commit后,如何撤销commit
修改了本地的代码,然后使用:

1、git add file
2、git commit -m ‘提交信息’
执行commit后,还没push到远程仓库时,想要撤销这次提交本地仓库的commit,该怎么办?
解决方法:
第一种:执行 git reset --soft HEAD~ 可成功撤销最近一次commit到本地仓库的提交,所有撤销的代码修改进入暂存区。
第二种:如果想要连着add也撤销的话,git reset --hard HEAD~(删除工作空间的改动代码,慎用)。
命令详解:
HEAD~ 表示上一个版本,即上一次的commit,也可以写成HEAD~1
如果进行两次的commit,想要都撤回,可以使用HEAD~2
--soft 不删除工作空间的改动代码 ,撤销commit,不撤销git add file
--hard 删除工作空间的改动代码,撤销commit且撤销add(慎用)
另外一点,如果commit注释写错了,先要改一下注释,有其他方法也能实现,如:
git commit --amend
这时候会进入vim编辑器,修改完成你要的注释后保存即可。

git官网

git-scm.com

优势:

大部分操作在本地完成,无需联网完整性保证尽可能添加数据而不是删除或修改数据分支操作非常快捷流畅与linux命令全面兼容

工作区、暂存区、本地库

工作区:编辑、增删改查
暂存区:保存工作区提交上来的记录
本地库:将暂存区的历史记录保存到本地库持久化
工作区——git add ——暂存区——git commit——本地库

代码托管中心:维护远程库
内网:gitlab
外网:github、码云

本地库——push——远程库

================
持续更新~,有遇到新的问题以及解决方案时,我会及时记录到这里,这只是我工作经验总结分享的一部分,如果有理解不到位的地方欢迎猿友们指正,非喜勿喷!!!☺☺☺