Git 常用指令
Posted w-it-h-ou-t
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git 常用指令相关的知识,希望对你有一定的参考价值。
创建SSH keys
ssh-keygen -t rsa -C "注册github的邮箱地址"
可手动设定保存公私钥的地址
可手动设定推代码时的密码
在默认地址中找到.ssh文件夹
将.pub结尾的内容拷贝到github的ssh中
验证是否成功
ssh -T [email protected]
配置全局git环境
git config --global user.name "username"
git config --global user.email "[email protected]"
(注释:如果你想使项目里的某个值与前面的全局设置有区别(例如把私人邮箱地址改为工作邮箱),你可以在项目中使用git config 命令不带 --global 选项来设置. 这会在你当前的项目目录下创建 .git/config,从而使用针对当前项目的配置。)
克隆远程项目
git clone https://github.com/shiyanlou/gitproject
将一个已存在的文件夹放到Git版本控制管理中
进入目录后执行:
git init
将新创建或修改的文件到本地缓存区(Index):
git add filename1 filename2
将所有文件添加到本地缓存区:
git add .
将本地缓存区的内容移除缓存区
git rm --cached filename
git reset HEAD *
提交到本地缓存区的内容到本地库并注释
git commit -m "添加3个文件"
将没有添加到缓存区的内容一起提交,但不会添加新建的文件
git commit -a -m "add file3"
撤销最近的一个提交(创建了一个撤销上次提交(HEAD)的新提交)
git revert HEAD
撤销上上次的提交
git revert HEAD^
文件修改后没有添加缓存区想要撤销修改(回到和版本库一样)
git checkout -- filename
查看缓存区的哪些文件被修改(按q退出)
git diff --cached
查看所有已做但没有加入到缓存区的修改(比如将file1加入到缓存区后又修改了file1文件,修改之后再次添加到缓存区即可)
git diff
创建一个新文件:
touch file1
在文件夹中添加测试内容
echo "要添加的内容" >> file1(文件名)
查看git仓库状态
git status
撤销通过add添加到缓存区的文件
git reset --mixed
删除文件并添加到缓存区(文件没了)
git rm filename
移除缓存区(文件没了)
git reset
把文件从HEAD中迁出并恢复成未修改的状态,丢弃本次删除文件的记录(文件回来了)
git checkout -- filename
再次将删除文件放入缓存区(在git reset后使用)
git rm filename
将本地仓库关联到远程服务器(origin是主机名,可自定义,不一定使用origin)
git remote add origin https://github.com/king.lion580/shiyanlou.git
如果连接到了远程的Git服务器,使用一下命令将本地仓库同步到远端服务器
git push origin master
创建新分支
git branch newbranch
查看所有分支
git branch
切换到其他分支
git checkout newbranch
合并分支
git merge newbranch
合并分支并添加注释
git merge -m ‘注释内容‘ newbranch
删除分支(只能删除已经被当前分支的合并的分支)
git branch -d experimental
强制删除某个分支
git branch -D experimental
回到上次提交时的状态(把工作目录中所有未提交的内容清空)
git reset --hard HEAD^
查看日志 (按q退出)
git log
显示每个commit中哪些文件被修改,分别添加或删除了多少行
git log --stat
按要求的格式来格式化日志输出(--pretty)
git log --pretty=oneline(在一行内输出)
可选参数(short/medium/full/fuller/email/raw)
也可以使用--pretty=format参数定义格式
可视化提交图(--graph)
git log --graph --pretty=online
可以指定--topo-order参数,让提交按拓扑顺序来显示(就是子提交在它们的父提交前显示)
git log --pretty=format:‘%h : %s‘ --topo-order --graph
查看两个分支的区别
git diff master test
查看当前的工作目录和另一个分支的差别
git diff test
查看当前工作目录和另一个分支的某个文件的差别
git diff test file1
统计一下哪些文件被改动
git diff test --stat
将一份仓库克隆到另一个位置,进入另一个位置,做一些修改后回到原先的仓库拉取代码
cd /tmp
git clone /home/shiyanlou/gitproject myrepo
回到原先的仓库拉取master分支并合并
git pull /tmp/myrepo master
定义远程分支的缩写:
将远程仓库命名为myrepo
git remote add myrepo /tmp/myrepo
将https://github.com远程仓库命名为origin
git remote add origin https://github.com
git pull 执行两个操作:从远程分支(remote branch)抓取修改git fetch的内容,然后合并git merge进当前的分支
查看远程分支做的修改
git log -p master..myrepo/master
把远程分支修改合并到主分支中
git merge myrepo/master
进入到myrepo中进行拉取直接拉取源地址的代码
克隆远程test分支
git clone localhost:/home/shiyanlou/gitproject test
推送本地的修改到远程Git仓库
git push [email protected]:wht456/GitStudy.git
在推代码之前先拉取远程代码
git pull
git push [email protected]:wht456/Gi6tStudy.git
用git tag 不带任何参数指定某个提交
git tag stable-1 8c315325
创建标签对象(-a -s -u)
git tag -a stable-2 commit号 -m ‘注释内容‘
创建并切换分支
git checkout -b mywork origin
交互式添加
git add -i
保存本地修改到储藏(stash)中,将工作目录和Index里的内容全部重置,回到当前所在分支的上次提交时的状态(突然遇到bug时使用)
git stash save ‘注释内容‘
回到以前的工作状态
git stash apply
查看储藏队列
git stash list
使用在队列中的任意一个储藏
git stash apply [email protected]1
清空整个储藏队列
git stash clear
创建追踪分支(前提是远程仓库也有一个experimental仓库)
git branch --track experimental origin/experimental
再执行git pull experimental 时会从origin抓取内容,再把远程的origin/experimental分支合并进本地的experimental分支
查找仓库里使用xxx的地方(-n显示行号)
git grep [-n] xxx
查找仓库里使用xxx的文件的名字
git grep --name-only xxx
查看文件里有多少行匹配内容
git grep -c xxx
查看某个版本里的内容在末尾加上标签名
git grep xxx v1.2.3
组合搜索条件
git grep -e ‘关键词1‘ --and -e ‘关键词2‘
修改刚才提交的注释
git commit --amendgit
Git压缩
git gc
一致性检查
git fsck
建立公共仓库
建立私有仓库
这是本人学习笔记,供大家参考学习,如内容有误欢迎大家批评指正,共同进步!
转载随笔/文章务必保留出处和署名,谢谢!!
该内容来自实验楼免费课程,不做任何商业用途, 如有侵权请及时联系本人删除!!!
以上是关于Git 常用指令的主要内容,如果未能解决你的问题,请参考以下文章