Git命令使用小结

作者:billy
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

简介

Git 是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
Git 最初被Linus Torvalds开发出来用于管理Linux内核的开发。每一个Git的工作目录都是一个完全独立的代码库,并拥有完整的历史记录和版本追踪能力,不依赖于网络和中心服务器。


Git的优缺点

优点:
  1. 可以离线工作。
  2. 适合分布式开发,强调个体。
  3. 便于协作,任意两个开发者之间可以很容易的解决冲突。
  4. 版本合并快捷简便。
  5. 速度快、灵活性高。
缺点:
  1. 资料少(起码中文资料很少)。
  2. 学习周期相对而言比较长。
  3. 不符合常规思维。
  4. 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。

Git的常用命令

  1. git初始化操作
git init                   把当前的目录变成git仓库,生成隐藏.git文件。
git remote add origin url  把本地仓库的内容推送到GitHub仓库。
git clone git@url/test.git 从远程库克隆
git add *                  把x文件添加到暂存区去。
git commit –m "*"          提交文件 –m 后面的是注释。   
  1. git 克隆分支
git clone xxx.git                最简单直接的命令
git clone xxx.git "指定目录"      clone到指定目录
git clone -b branchname xxx.git  clone时创建新的分支替代默认Origin HEAD(master)
  1. clone 远程分支
git clone 命令默认的只会建立master分支,如果你想clone指定的某一远程分支(如:dev)的话,可以如下:
1) 查看所有分支(包括隐藏的)  git branch -a 显示所有分支    
	* master
	remotes/origin/HEAD -> origin/master
	remotes/origin/dev
	remotes/origin/master
2) 在本地新建同名的("dev")分支,并切换到该分支
	git checkout -t origin/dev 该命令等同于:
	git checkout -b dev origin/dev
  1. 文件目录操作命令
mkdir *   创建一个空目录 *指目录名
pwd       显示当前目录的路径。
cat *     查看*文件内容
git rm *  删除**文件
  1. 查看命令
git status        查看仓库状态
git diff  *       查看X文件修改了那些内容   
git log           查看历史记录
git reflog        查看历史记录的版本号id(记录你的每一次命令,不论是否提交)
git log --pretty=oneline 如果信息量太多可以进行比较好的列表显示   
  1. 版本回退
git reset –-hard HEAD^      	回退到上一个版本
git reset --hard HEAD~第几个 	如果想回退到第3个版本,使用git reset –hard HEAD~3
git reset --hard 057d       	回退到某一个具体的版本号
git push -f -u origin master	推送到远程github
  1. 撤销修改
git checkout file-name 恢复某个已修改的文件(撤销未提交的修改):
git revert HEAD        还原最近一次提交的修改:
git revert commit-id   还原指定版本的修改
  1. 分支管理
git branch                   查看本地所有的分支
git branch -a                查看远程所有的分支
git branch name              创建分支
git branch –d dev            删除dev分支
git push origin --delete dev 删除远程的dev分支
git branch -m dev develop    重命名分支
git checkout –b dev          创建dev分支 并切换到dev分支上
git merge dev                在当前分支上合并dev分支代
git push origin zyf-dev      把当前新疆的zyf-dev分支推送到远程库(远程仓库没有给分支则会新建立该分支)
git checkout — *                     	把XX文件在工作区的修改全部撤销。
git checkout master                  	切换回master分支
git push --set-upstream origin dev  	提交修改并创建远程分支dev
git remote prune origin					删除远程仓库不存在的分支
  1. tag相关操作
git tag         列出所有的tag
git tag name    打轻量标签 name
git tag -d name 删除本地的tag
git push origin --delete tag name  删除远程的tag
git show name        查看tag信息
git push origin name 将tag提交到远程
  1. 隐藏的文件
git stash       把当前的工作隐藏起来 等以后恢复现场后继续工作
git stash list  查看所有被隐藏的文件列表
git stash apply 恢复被隐藏的文件,但是内容不删除
git stash drop  删除文件
git stash pop   恢复文件的同时 也删除文件
  1. 查看远程库信息(git remote的用法)
git remote       查看远程库的信息
git remote –v    查看远程库的详细信息
git remote add  name url          添加远程仓库
git remote rename oldname newname 重命名仓库
git remote rm                     删除仓库
  1. 将远程分支拉取到本地
方法一:git checkout -b 本地分支名x origin/远程分支名x
方法二:git fetch origin 远程分支名x:本地分支名x
方法三:先创建本地分支x,再关联远程分支:git push --set-upstream origin 远程分支名x
  1. git pull操作
git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并,基本的格式如下。
$ git pull <远程主机名> <远程分支名>:<本地分支名>

取回origin主机的next分支,与本地的master分支合并,需要写成下面这样
$ git pull origin next:master

如果远程分支是与当前分支合并,则冒号后面的部分可以省略。
$ git pull origin next

上面命令表示,取回origin/next分支,再与当前分支合并。实质上,这等同于先做git fetch,再做git merge。
$ git fetch origin
$ git merge origin/next

在某些场合,Git会自动在本地分支与远程分支之间,建立一种追踪关系(tracking)。
比如,在git clone的时候,所有本地分支默认与远程主机的同名分支,建立追踪关系,
也就是说,本地的master分支自动”追踪”origin/master分支。
Git也允许手动建立追踪关系。
git branch --set-upstream master origin/next

上面命令指定master分支追踪origin/next分支。
如果当前分支与远程分支存在追踪关系,git pull就可以省略远程分支名。
$ git pull origin
  1. git 设置大小写敏感
Windows上的Git默认是大小写不敏感的,这样多平台写作就可能会出现问题。
Win上的Git设置为大小写敏感的命令如下:
git config core.ignorecase false  
  1. git 设置忽略文件或文件夹权限修改
git config core.filemode false
  1. 创建追踪分支
不带任何参数的git push,默认只推送当前分支,这叫做simple方式。
此外,还有一种matching方式,会推送所有有对应的远程分支的本地分支。
Git 2.0版本之前,默认采用matching方法,现在改为默认采用simple方式。
如果要修改这个设置,可以采用git config命令。

$ git config --global push.default matching
$ git config --global push.default simple (最好使用这种方式)

//在使用 git branch 命令时加上 '--track' 参数, 来手动创建一个追踪分支
$ git branch --track  master origin/master 
  1. 切换git 命令提示中文到英文
// ubuntu装的git不知道怎么就出现全中文的提示,不太好,果断切换到中文了,切换方法如下:
// 1:写入
echo "alias git='LANG=en_GB git'" >> ~/.bashrc

// 2:生效
source ~/.bashrc
  1. git 删除未添加到版本中的文件或者文件夹
git checkout 只能回退在版本中的修改或者删除, 对于新添加的文件是没有作用的, 
也就是说, 新建的文件或者文件夹是:Untracked files, 要删除或者清理掉这些文件,需要使用 git clean 命令:

// 删除 untracked files
git clean -f

// 连 untracked 的目录也一起删掉
git clean -fd

// 连 gitignore的untrack 文件/目录也一起删掉 (一般这个是用来删掉编译出来的 .o一类的文件)
git clean -xfd

// 在使用清理 git clean之前,建议加上 -n 来先看看会删掉哪些文件,防止重要文件被误删
git clean -nxfd
git clean -nf
git clean -nfd

  1. 创建ssh秘钥
ssh-keygen -t rsa -C "your_email@example.com“	生成新的SSH key
cat ~/.ssh/id_rsa.pub							查看本地ssh
ssh-add ~/.ssh/id_rsa							将SSH key 添加到 ssh-agent
eval "$(ssh-agent -s)"							使用上述命令报错时使用此命令解决
ssh -T git@github.com							验证key
  1. 配置用户名和邮箱
git config --global user.name "xxx"				设置用户名
git config --global user.email xxxxxx@qq.com	设置邮箱 

Git 安装

  1. 下载git并安装(下载点这里
  2. git官网下载慢的话可以用这个地址(下载点这里)
  3. 下载git小乌龟并安装(下载点这里
  4. 先安装git,再安装语言包(语言包下载路径同上)

解决 git pull/push 每次都要输入用户名密码

出现这种问题的原因是因为使用 http 的方式拉取代码

方法一:在本地生成包含 git 账号和密码的文件

  • 先按提示输入用户名和密码
  • 接着执行 git config --global credential.helper store

方法二:切换 git 的拉取方式,将 http 改为 ssh 的方式

  • 查看 clone 地址:git remote -v
  • 移除 http 的方式:git remote rm origin
  • 换成 ssh方式: git remote add origin [git 地址]
  • 查看 clone 地址:git remote -v
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值