git管理项目常用命令,包含初始化项目,分支操作,.gitignore文件说明,版本回滚,仓库协议,子模块使用等。大家快收藏吧!!
git升级
Windows平台下的Git升级命令
git update-git-for-windows
config 配置
git config --global user.name "Your Name"
git config --global user.email your@example.com
# 生成公钥私钥(cd ~/.ssh)
ssh-keygen -t rsa -C "your@example.com"
# 打开gitlab的找到User Settings下的SSH Keys,在Add an SSH key中,复制 id_rsa.pub中的内容到key里,在Title这里给这个key设置一个名字,点击Add key就可以了
# 此设置是 Git 命令 push 的默认模式为 simple,当我们执行 git push 没有指定分支时,自动使用当前分支,而不是报错。
git config --global push.default simple
初始化本地项目 提交 远程git仓库
# 进入项目内
cd /xx/project
# 初始化
git init
# 将项目所有文件保存到暂存区
git add -A
# 如下,和远程仓库建立连接(提前创建远程仓库-空仓库)
git remote add origin 空仓库的clone链接,http
git branch -M main
git commit -m 'xx'
git pull --rebase origin main
git push -uf origin main
基于master分支创建其他分支
# clone主分支代码
git clone 主分支链接
# 进入clone的项目内
# 切换master分支
git checkout master
# 拉取远程master的最新项目到本地master分支
git pull
# 创建新分支,并把当前分支内容复制到新分支中(yourdev是你的分支名)
git checkout -b yourdev
# 把新建的分支推动到远端(yourdev)
git push origin yourdev
# 建立远端分支(yourdev)和本地分支(yourdev)的关联
git branch --set-upstream-to=origin/yourdev
# 验证创建分支是否成功
git pull
# 出现Already up to date ,代表创建成功
# 其他验证方法
git branch -vv
# *yourdev [origin/yourdev] upd 表示成功
git拉取远程分支并创建本地分支
# 方式1: 使用该方式会在本地新建分支x,并自动切换到该本地分支x
git checkout -b 本地分支名x origin/远程分支名x
# 方式2: 使用该方式会在本地新建分支x,但是不会自动切换到该本地分支x,需要手动checkout
git fetch origin 远程分支名x:本地分支名x
修改远程分支名
# 重命名远程分支对应的本地分支
git branch -m oldName newName
# 删除远程分支
git push --delete origin oldName
# 上传新命名的本地分支
git push origin newName
# 把修改后的本地分支与远程分支关联
git branch --set-upstream-to origin/newName
删除远程分支
# 查看所有分支信息
git branch -a
# 当你处在要被删除的分支时,是无法删除该分支,可以checkout master
# 删除new_a远程分支
git push origin --delete new_a
# 确认new_a是否被删除
git branch -a
# 删除本地new_a分支
git branch -d new_a
# 确认new_a是否被删除
git branch -a
合并分支
# 场景:将dev的分支代码合并到master
# 提交dev分支代码至git
git push dev
# 切换分支至master
git checkout master
# 合并代码
git merge dev
# 提交合并结果
git push
查看历史版本号id
# 查看历史记录的版本号id
git reflog
git如何从仓库中删除已经被跟踪的文件(.gitignore)
在我们开始实际项目中,总是会用到.gitignore文件,该文件表示在项目中的某些文件不需要使用git来管理,写入.gitignore中的文件名会自动被git所忽略。但是现实问题往往是这样:.gitignore文件一开始就不可能被考虑完善,可能项目开发到一半,突然发现某个文件需要被git忽略,所以我们再把该文件写入到.gitignore中。但是此时再去配置.gitignore已经没有用了,git还是会一直去版本控制你的文件。因为你要忽略的文件已经被git “盯上了”,git现在才不去管什么.gitignore呢?
为了应对这个问题,我们就要从git仓库中删除这个已经被跟踪的文件,具体方法如下: 首先把该文件名写入到.gitignore中,如何写.gitignore请参考GitHub - github/gitignore: A collection of useful .gitignore templates 如果你要忽略的仅仅是一个文件,请使用如下命令:
git rm --cached 文件名
如果你要忽略的是一个目录或文件夹,则需要加-r参数:
git rm --cached -r 目录
执行完以上步骤之后,再去执行正常的git status, git add, git commit命令即可。把刚才的操作提交到仓库中即可。
切换仓库协议
# 查看当前remote
git remote -v
# 切换到http:
git remote set-url origin https://github.com/username/repository.git
# 切换到ssh:
git remote set-url origin git@git.theroads.cn:saas-group/kemai-saas.git
# 删除项目 remote信息
git remote remove origin
# 以上的后面的链接都需要提花为自己的仓库地址
版本回滚
# 退回到上一个版本
git reset --hard HEAD^
# 上上一个版本
git reset --hard HEAD^^
# 退回到前5个版本
git reset --hard HEAD~5
# 退回到指定版本
git reset --hard 版本号
子模块的使用
# 1、克隆父项目
git clone https://github.com/maonx/vimwiki-assets.git
# 2、查看子模块
git submodule
# 以下 -- 仅在父项目拉取后,执行一次即可
# 3、初始化子模块
git submodule init
# 4、更新子模块
git submodule update
# 正常步骤
cd 子模块
git checkout master
git pull