git 命令 语法

    科技2025-06-12  21

    git 命令 语法

    本地库初始化Git本地库设置签名信息查看状态暂存区本地库查看版本历史记录前进后退版本删除文件并恢复对比文件差异Git分支 创建本地仓库 演示远程库创建远程库地址别名push 推送本地库到远程库windows云平台密码克隆远程库pull 拉取操作fetch 操作merge 操作pull 操作解决冲突 fork 跨团队协作SSH登录TortoiseGit 图形化工具

    本地库

    安装Git后,在资源管理器的空白处,单击鼠标右键打开窗口,点击Git Bash Here,打开Git命令 行窗口, 在窗口中可直接使用Linux命令操作

    初始化Git本地库

    git init

    设置签名信息

    项目级别/仓库级别:仅在当前目录的本地Git仓库范围内有效 git config user.name wangbr_pro git config user.email wangbr888@163.com # 签名信息保存位置: ./.git/config 文件中 系统用户级别:登录当前操作系统的用户范围 git config --global user.name wangbr_glo git config --global user.email wangbr666@163.com # 签名信息保存位置: ~/.gitconfig

    查看状态

    $ git status On branch master # 默认在master(主干)分支上 No commits yet # 当前没有任何的提交 nothing to commit (create/copy files and use "git add" to track) # 没有什么需要提交的(创建/复制文件,使用“git add”命令可追踪,也就是用git去管理文件)

    暂存区

    将工作区的“新建/修改”添加到暂存区 git add <file name> 恢复,不放到暂存区 git rm --cached <file name>

    本地库

    将暂存区的内容提交到本地库 git commit [-m "提交说明信息"] <file name>

    查看版本历史记录

    git log # commit [根据最新文件生成的hashcord] # Author : 作者 # Date : 时间 以漂亮的格式显示:即每条日志只显示一行 git log --pretty=oneline 简约的格式显示: git log --oneline 显示回滚版本步数[推荐 ] git reflog

    前进后退版本

    基于索引值操作[推荐方式] git reset --hard <局部索引值> # 通过HEAD指针来移动回滚版本 # git reflog 查看 局部索引值 git reset --hard 64d3d2a 使用 ^ (异或)符号:只能后退 git reset --hard HEAD^ # 注:一个 ^ 表示后退一步,n 个表示后退 n 步 使用 ~ 符号:只能后退 git reset --hard HEAD~n # 注:n指定步数,表示后退 n 步

    删除文件并恢复

    前提:删除文件前,此文件需要已经提交过本地库,才可恢复

    删除:rm 文件名.txt

    git reset --hard <历史记录索引值> # 删除操作已经提交到本地库:指针位置指向历史记录 # 删除操作尚未提交到本地库:无法恢复

    对比文件差异

    将工作区中的文件和暂存区进行比较 git diff <文件名> 将工作区中的文件和本地库历史记录比较 git diff <本地库中历史版本> <文件名> # 不带文件名比较多个文件

    Git分支

    查看分支: git branch -v 创建分支: git branch <新分支名> 删除分支(删除的分支不是当前正在打开的分支): git branch -d <分支名> 切换分支: git chckout <分支名> 合并分支: # 第1步:切换到接受修改的分支上 git checkout <需要接受的分支名> # 第2步:执行 merge 命令 git merge <有新内容的分支名> 解决冲突: # 第1步:编辑文件,删除特殊符号 # 第2步:把文件修改到满意为止,保存退出 # 第3步: git add 文件名 # 第4步: git commit -m "日志信息" # 注意:此时 commit 后面一定不要有文件名

    创建本地仓库 演示

    mkdir wangbr cd wangbr git init # 初始化仓库 vim demo1.txt #新增文件, 按 i 开始编辑,ctrl+c退出编辑,:wq保存并退出,:q!不保存退出 git add demo1.txt # 添加到暂存区 git commit -m "fisrt commit" demo1.txt # 提交到本地仓库

    远程库

    创建远程库地址别名

    查看当前所在本地仓库下的所有远程地址别名 git remote -v 创建远程库地址别名 git remote add 别名 远程地址 # 例 git remote add origin https://gitee.com/stu/wangbr.git # 地址复制网站上的

    push 推送本地库到远程库

    git push [远程库别名] [分支名]

    windows云平台密码

    按 Ctrl + R 打开运行窗口,输入 control查看方式大图标找到 凭据管理器找 gitee.com

    克隆远程库

    git clone 远程地址 # 例 git clone https://gitee.com/wbr6666/wangbr.git

    pull 拉取操作

    pull 拉取操作其实是两步:

    pull = fetch + merge

    fetch 操作

    只把远程库中的内容下载到本地,但是没有改本地工作区的文件。 git fetch <远程库地址别名> <远程分支名> 演示 git fetch 远程库地址别名 远程分支名 git fetch origin master cat demo1.txt # 查看并没有更改本地工作区的文件 git checkout origin/master # 切换远程分支对比下内容 cat demo1.txt # 远程分支 内容是不一样的 git checkout master #切换回本地master分支

    merge 操作

    把远程代码合并到本地代码中 git merge 远程库地址别名/远程分支名 演示 git merge origin/master

    pull 操作

    针对没有冲突的情况 ,不分为上面两个步骤,可以直接使用 pull 提取操作, git pull 远程库地址别名 远程分支名 演示 $ pwd /d/gitStudy/wangbr_jl/wangbr $ vim demo1.txt $ git commit -m "jl cmmmit" demo1.txt $ git push origin master $ cd ../../wangbr Administrator@PC201802211917 MINGW64 /d/gitStudy/wangbr (master) $ git pull origin master # 直接拉取,不分两步 fetch,merge $ cat demo1.txt hello, 我是总监 hi, 我是经理,我加入项目组来啦...。 haha,我是经理,我又来了。。。。

    解决冲突

    上面有冲突时,需要先 git pull 拉取远程代码,然后 vim 查看修改文件,再手动解决冲突, 保留需 要的 git pull origin master vim demo1.txt 添加到本地库和远程库 git add demo1.txt git commit -m "jl resolve conflict" git status On branch master Your branch is ahead of 'origin/master' by 2 commits. (use "git push" to publish your local commits) nothing to commit, working tree clean git push origin master

    fork 跨团队协作

    开发人员 入场,访问 https://gitee.com/mxg6666/wangbr , 点击右上角的 Fork

    fork 之后,发现域名变了,和项目名下面多了一行描述

    开发人员 克隆项目,然后修改内容提交

    $ cd ../.. $ mkdir wangbr_kf $ cd wangbr_kf/ $ git clone https://gitee.com/mxg999/wangbr.git Cloning into 'wangbr'... remote: Enumerating objects: 24, done. remote: Counting objects: 100% (24/24), done. remote: Compressing objects: 100% (8/8), done. remote: Total 24 (delta 7), reused 24 (delta 7) Unpacking objects: 100% (24/24), done. $ cd wangbr/ $ vim demo1.txt $ git add demo1.txt $ git commit -m 'kf commit' demo1.txt $ git push origin master

    在 码云 上点击 Pull Request 标签, +新建 Pull Request

    切换 总监 , 点击 Pull Request 标签, 点击下方 开启的

    预览审核代码

    SSH登录

    windows系统自带保存密码功能,如果 mac 没有自带保存密码功能怎么办?

    https 没有记住就帐号,每次登录时都要输入帐号密码,就很浪费时间。

    ssh 可以避免每次添加用户名密码。

    生成密钥 #进入当前用户的家目录 ~ $ cd ~ #如果有.ssh 目录,则删除.ssh 目录 $ rm -rvf .ssh #运行命令生成.ssh 密钥目录 $ ssh-keygen -t rsa -C wangbr666@163.com #[注意:这里-C 这个参数是大写的 C , 出现光标停留的地方直接按 Enter 键] #进入.ssh 目录查看文件列表 $ cd .ssh #查看所有目录 与 文件 $ ls -lf #./ ../ id_rsa id_rsa.pub #查看 id_rsa.pub 文件内容, 复制 id_rsa.pub 文件内容(公钥) $ cat id_rsa.pub

    登录 码云, 点击用户头像→设置

    点击 SSH公钥,输入复制的密钥信息

    权限验证

    回到 Git Bash 创建 远程ssh地址别名

    cd /d/gitStudy/wangbr vim demo1.txt git commit -m "test ssh update" demo1.txt git remote add origin_ssh git@gitee.com:mxg6666/wangbr.git git remote -v origin https://gitee.com/mxg6666/wangbr.git (fetch) origin https://gitee.com/mxg6666/wangbr.git (push) origin_ssh git@gitee.com:mxg6666/wangbr.git (fetch) origin_ssh git@gitee.com:mxg6666/wangbr.git (push)

    TortoiseGit 图形化工具

    Processed: 0.891, SQL: 8