git使用
Posted lrxvx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git使用相关的知识,希望对你有一定的参考价值。
推荐https://www.liaoxuefeng.com/
1、安装GIt
-
linux 安装
输入git查看是否安装
下载git Linux版本
./config
,make
,sudo make install
1、安装git依赖包 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker 若已有git先 进行删除。 yum remove git 2、上传git安装包到/usr/local/中或者在/usr/local/下执行 wget https://www.kernel.org/pub/software/scm/git/git-2.18.0.tar.gz 解压git安装包 tar -zxvf git-2.18.0.tar.gz cd git-2.18.0 配置git安装路径 ./configure prefix=/usr/local/git/ 编译并且安装 make && make install vi /etc/profile 在PATH那行加上 /usr/local/git/bin:/usr/local/git/libexec/git-core 让配置立刻生效 source /etc/profile
-
window安装
下载window版本,安装
$ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"
2、Git初始化
? git仓库初始化有两种方式:
- 在指定目录下 git init
- 直接从远程仓库中克隆一个仓库下来 git clone ....git SSH 远程仓库 ssh-keygen -t rsa -C "邮箱" 将~/.ssh/id_rsa.pub中的内容添加在GitHub setting ssh key中
3、Git操作命令
3.1 基本提交命令
git status 查看仓库状态 git add file 添加文件到暂存区 git add . 添加目录下所有文件 git commit -m "" 提交到本地仓库 git commit -am "" 添加提交,前提是已存在仓库中的文件 git commit --amend 修改备注
3.2 历史版本管理
git log 查看提交日志,还有很多参数:--pretty=short,--pretty=oneline 加文件名 -p 可以查看文件提交的变化情况,会看到一串字母,commit的版本ID git log --graph 分支合并图 git diff HEAD -- file 修改后的差异 git rebase -i 压缩提交历史 git checkout file 撤销工作区的代码 git reset HEAD file 可以将暂存区的文件撤销 git checkout -- file 撤销,会将工作区的file的修改全部撤销,回到上一次add或者commit的版本 git reset --hard 加版本号 (回退到指定版本)提交到本地仓库的代码想撤销 HEAD^ 是前一个版本 多少^就是前几个版本 或者HEAD~10 HEAD代表当前版本 HEAD^代表上一个版本 HEAD^^是上上个版本,然后HEAD~10代表上10个版本 git reset --hard 可以加HEAD这种版本号,也可以是具体的commit ID,如果回到了以前的版本,可以通过具体的commit ID回来。 git reflog 用来记住每一次的命令,可以找回以前提交的commit ID,从而回到那个版本 git reset --hard commit_id HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。 git rm file 删除,然后 commit 就能删除版本库中的文件了,可以通过 git checkout -- file 撤回到,恢复到最新的版本
3.3 远程仓库
注册GitHub,建立一个库,然后与本地的库做关联
git remote add origin git@github...地址../....git git push -u origin master 推送本地库的内容到远程仓库中 第一次 -u参数 会把本地master分支和远程master分支关联起来 git push origin master 之后需要发送到远程仓库直接这样 如果有冲突,可能是远程仓库中有文件本地没有,可以在本地创建然后 git push -f origin master 覆盖 git clone git@github...../....git 直接克隆GitHub的远程仓库
3.3 分支管理操作
git branch 查看分支 git branch <分支名> 创建 git checkout <分支名>来切换分支 git checkout -b <分支名> 创建加切换 git merge <name> 合并某分支到当前分支 这种是快速合并 git branch -d <name> 删除分支 合并分支的时候可能会出现冲突,这是Git会提醒,然后手动修改master分支上的冲突,add commit git log --graph --pretty=oneline --abbrev-commit 查看分支合并情况 git merge --no-ff -m "merge with no-ff" dev 表示禁用 快速合并的方式合并分支 这样做就会有合并的历史
3.4 标签操作命令
轻量级标签 轻量级标签就像是个不会变化的分支,实际上它就是个指向特定提交对象的引用。 git tag v1 tag默认是创建在最新一次的commit git show <tagname> 删除 git tag -d v1 给具体的某个版本打标签 git tag v0.0 7d519 git push origin v0.0 标签推送到远程仓库 origin是连接远程仓库的别名
3.5 Git 命令大全
查看、添加、提交、删除、找回,重置修改文件
git help <command> # 显示command的help git show # 显示某次提交的内容 git show $id git co -- <file> # 抛弃工作区修改 git co . # 抛弃工作区修改 git add <file> # 将工作文件修改提交到本地暂存区 git add . # 将所有修改过的工作文件提交暂存区 git rm <file> # 从版本库中删除文件 git rm <file> --cached # 从版本库中删除文件,但不删除文件 git reset <file> # 从暂存区恢复到工作文件 git reset -- . # 从暂存区恢复到工作文件 git reset --hard # 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改 git ci <file> git ci . git ci -a # 将git add, git rm和git ci等操作都合并在一起做 git ci -am "some comments" git ci --amend # 修改最后一次提交记录 git revert <$id> # 恢复某次提交的状态,恢复动作本身也创建次提交对象 git revert HEAD # 恢复最后一次提交的状态
查看文件diff
git help <command> # 显示command的help git show # 显示某次提交的内容 git show $id git co -- <file> # 抛弃工作区修改 git co . # 抛弃工作区修改 git add <file> # 将工作文件修改提交到本地暂存区 git add . # 将所有修改过的工作文件提交暂存区 git rm <file> # 从版本库中删除文件 git rm <file> --cached # 从版本库中删除文件,但不删除文件 git reset <file> # 从暂存区恢复到工作文件 git reset -- . # 从暂存区恢复到工作文件 git reset --hard # 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改 git ci <file> git ci . git ci -a # 将git add, git rm和git ci等操作都合并在一起做 git ci -am "some comments" git ci --amend # 修改最后一次提交记录 git revert <$id> # 恢复某次提交的状态,恢复动作本身也创建次提交对象 git revert HEAD # 恢复最后一次提交的状态
查看提交记录
git log git log <file> # 查看该文件每次提交记录 git log -p <file> # 查看每次详细修改内容的diff git log -p -2 # 查看最近两次详细修改内容的diff git log --stat #查看提交统计信息
Git 本地分支管理 查看、切换、创建和删除分支
git br -r # 查看远程分支 git br <new_branch> # 创建新的分支 git br -v # 查看各个分支最后提交信息 git br --merged # 查看已经被合并到当前分支的分支 git br --no-merged # 查看尚未被合并到当前分支的分支 git co <branch> # 切换到某个分支 git co -b <new_branch> # 创建新的分支,并且切换过去 git co -b <new_branch> <branch> # 基于branch创建新的new_branch git co $id # 把某次历史提交记录checkout出来,但无分支信息,切换到其他分支会自动删除 git co $id -b <new_branch> # 把某次历史提交记录checkout出来,创建成一个分支 git br -d <branch> # 删除某个分支 git br -D <branch> # 强制删除某个分支 (未被合并的分支被删除的时候需要强制)
分支合并和reba
git merge <branch> # 将branch分支合并到当前分支 git merge origin/master --no-ff # 不要Fast-Foward合并,这样可以生成merge提交 git rebase master <branch> # 将master rebase到branch,相当于: git co <branch> && git rebase master && git co master && git merge <branch>
Git补丁管理
git merge <branch> # 将branch分支合并到当前分支 git merge origin/master --no-ff # 不要Fast-Foward合并,这样可以生成merge提交 git rebase master <branch> # 将master rebase到branch,相当于: git co <branch> && git rebase master && git co master && git merge <branch>
Git暂存管理
git stash # 暂存
git stash list # 列所有stash
git stash apply # 恢复暂存的内容
git stash drop # 删除暂存区
Git远程分支管理
git pull # 抓取远程仓库所有分支更新并合并到本地 git pull --no-ff # 抓取远程仓库所有分支更新并合并到本地,不要快进合并 git fetch origin # 抓取远程仓库更新 git merge origin/master # 将远程主分支合并到本地当前分支 git co --track origin/branch # 跟踪某个远程分支创建相应的本地分支 git co -b <local_branch> origin/<remote_branch> # 基于远程分支创建本地分支,功能同上
git push # push所有分支
git push origin master # 将本地主分支推到远程主分支 git push -u origin master # 将本地主分支推到远程(如无远程主分支则创建,用于初始化远程仓库) git push origin <local_branch> # 创建远程分支, origin是远程仓库名 git push origin <local_branch>:<remote_branch> # 创建远程分支 git push origin :<remote_branch> #先删除本地分支(git br -d <branch>),然后再push删除远程分支
Git远程仓库管理
git remote -v # 查看远程服务器地址和仓库名称 git remote show origin # 查看远程服务器仓库状态 git remote add origin git@ github:robbin/robbin_site.git # 添加远程仓库地址 git remote set-url origin git@ github.com:robbin/robbin_site.git # 设置远程仓库地址(用于修改远程仓库地址) git remote rm <repository> # 删除远程仓库
创建远程仓库
git clone --bare robbin_site robbin_site.git # 用带版本的项目创建纯版本仓库 scp -r my_project.git git@ git.csdn.net:~ # 将纯仓库上传到服务器上 mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在服务器创建纯仓库 git remote add origin git@ github.com:robbin/robbin_site.git # 设置远程仓库地址 git push -u origin master # 客户端首次提交 git push -u origin develop # 首次将本地develop分支提交到远程develop分支,并且track git remote set-head origin master # 设置远程仓库的HEAD指向master分支
命令设置跟踪远程库和本地库
git branch --set-upstream master origin/master
git branch --set-upstream develop origin/develop
以上是关于git使用的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段15——git命令操作一个完整流程
VSCode自定义代码片段15——git命令操作一个完整流程
GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段
GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段