git常用命令学习
2017-03-22 15:58
211 查看
安装git
windows下请下载安装 Git for windows;Linux下直接输入:
sudo apt-get install git
基本命令
git config –global user.name “Your Name”git config –global user.email “email@example.com”
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。
git init :即可把当前目录变成仓库
git add : 把文件添加到仓库 (这一步是添加到git的暂存区),可以多次使用git add添加多个文件
git add . : 表示添加所有文件
git commit -m :”修改信息” 这一步是提交上一步(git add)的内容。
git status : 查看仓库的状态,看有没有需要提交的,没有则会显示仓库是空的,是clean(干净)的。
git diff : 查看修改了什么内容
git log : 显示从最近到最远的提交日志
git reset -hard HEAD^
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交的版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
git reset -hard 3628164
这个命令可以回到指定的某个版本 3628164是git提交的版本号的前面几个数字,因为git提交的版本号都是很长的数字,所以只需要写前面几个数字即可,但是也不只写一两个数字,那样git就会找到几个版本不知道回到哪一个 。
git reflog : 这个可以查看你每一次的命令,git用来记录你每一次命令的。
git checkout – file : 可以丢弃对工作区的修改
git reset HEAD file : 可以把暂存区的修改撤销掉(unstage),重新放回工作区
git checkout – file : 意思就是,把file文件在工作区的修改全部撤销,这里有两种情况:
一种是file自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是file已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
git checkout – file命令中的–很重要,没有–,就变成了“切换到另一个分支”的命令
删除文件:
如果在仓库中删除了某个文件,那么有两个选择一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit
git rm test.txt
另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:
git checkout – test.txt
添加和克隆远程库
添加远程库
添加远程库之前首先要在本地生成一个rsa的密钥,要把公钥添加到github你的帐号里面,这样你就可以克隆和关联远程文件。输入命令:
ssh-keygen -t rsa -C"youremail@example.com"
使用上述语句 生成rsa密钥
系统会提示你保存在哪里,你按照提示操作即可;
不在你的github帐号中添加rsa密钥的话会出现以下错误提示:
Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
所以必须先把你的公钥添加到你的github帐号里面,这样你就可以克隆和关联任何远程文件了。
在github上创建一个仓库后,根据新仓库的提示输入下列命令:
git remote add origin https://github.com/AngryCodeDog/learngit.git
然后就可以关联上仓库了。
可以直接拉取:git pull origin master(如果你的仓库是完全新建的,这样就会在本地创建一个master分支,并且下载下远程仓库的内容,在本地文件夹也可以直接查看的到下载下来的文件)
git fatch origin master //这个是拉取远程仓库最近的更新内容,下载到本地后,你是直接查看不到文件的,因为下载到了某个分支,必须用git命令才可以查看。然后查看本地与远程文件有没有什么不一样,
git fetch [remote-name]此命令会到远程仓库中拉取所有你本地仓库中还没有的数据.运行完成后,你就可以在本地访问该远程仓库中的所有分支,将其中某个 分支合并到本地,或者只是取出某个分支,一探究竟.
如果是克隆了一个仓库,此命令会自动将远程仓库归于 origin 名下.所以,git fetch origin 会抓取从你上次克隆以来别人上传到此远程仓库中的所有更新(或是上次 fetch 以来别人提交的更新).有一点很重要,需要记住,fetch 命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,只有当你确实准备好了,才能手工合并.(说 明:事先需要创建好远程的仓库,然后执行:
git remote add [仓库名] [仓库url], git fetch [远程仓库名],
即可抓取到远程仓库数据到本地,再用
git merge remotes/[仓库名]/master
就可以将远程仓库merge到本地当前branch.这种分支方式比较适合独立-整合开发,即各自开发测试好后 再整合在一起.比如,Android的Framework和AP开发.
克隆远程库
要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。和添加远程库一样,要先在github中添加你的rsa密钥,然后再克隆。
Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。
git clone git@github.com:yourrepository/gitskills.git
地址是你自己的仓库,这样即可克隆仓库到本地;
git查看远程仓库地址:
git remote -v第一次推送输入:
git push -u origin master
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令
以后就只要输入:
git push origin master
小结:
要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;
关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令
git push origin master
推送最新修改;
git分支使用
Git鼓励大量使用分支:查看分支:git branch 创建分支:git branch <name> 切换分支:git checkout <name> 创建+切换分支:git checkout -b <name> 合并某分支到当前分支:git merge <name> 删除分支:git branch -d <name>
注意:
配置Git的时候,加上–global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。
git查看global全局变量:
git config -l
当使用git clone下来的工程中带有submodule时,初始的时候,submodule的内容并不会自动下载下来的,此时,只需执行如下命令:
git submodule update –init –recursive
即可将子模块内容下载下来后工程才不会缺少相应的文件。
相关文章推荐
- GIT 版本控制常用命令学习汇总
- Git常用命令——学习总结
- git常用命令学习笔记
- Git常用命令学习
- 【Git学习笔记】Git常用命令总结
- 【学习笔记】git常用命令
- Git学习 --> 个人常用命令add,commit以及push
- Git学习一之常用命令
- git学习三:git常用命令
- 我的linux学习之路:Git常用命令
- 【学习笔记】git常用命令 及中文环境设置
- Linux学习-Git常用命令
- Git学习笔记--Git常用命令
- git常用命令学习(转)
- Git学习 --> 个人常用命令add,commit以及push
- 三十分钟学习git的常用命令
- Android 开发git学习,常用命令总结
- Git学习笔记之Git常用命令
- Git超级菜鸟学习 --> 个人常用命令add,commit以及push
- Git学习笔记(几个常用的命令 及 版本回退)