学习git命令
2017-12-23 本文已影响9人
凯文Kevin21
百度上有很多git的教程,在这里我只推荐一个人:廖雪峰的官方网站
1.git安装
CloverdeiMac $:sudo apt-get install git
- 查看是否安装git
CloverdeiMac $:git
3.查看git工具的版本号
CloverdeiMac $:git version
4.设置全局name和email
CloverdeiMac $ git config --global user.name "Your Name"
CloverdeiMac $ git config --global user.email "email@example.com"
5.创建本地版本库
CloverdeiMac $:mkdir learngit
CloverdeiMac $:cd learngit
CloverdeiMac $:pwd
(pwd命令用于显示当前目录,在我的mac上这个仓库位于/User/Clover/learngit)
6.把目录变成Git可以管理的仓库:
CloverdeiMac $:git init
Initialized empty Git repository in /User/Clover/learngit/.git/5.把目录变成Git可以管理的仓库:
CloverdeiMac $:git init
Initialized empty Git repository in /User/Clover/learngit/.git/
7.查看隐藏的.git目录
ls -ah
8.添加文件到git本地仓库,分两步:
第一步: git add read.txt 把文件添加到仓库缓存区
第二步: git commit -m “wrote a read file” 把文件提交到仓库
9.查看git仓库当前的状态
$:git status
10.查询修改的文件内容
$ git diff read.txt
11.查看修改的历史纪录
git log
$:git log --pretty=oneline 简洁版
eg:
d1d9c943fc272d74144e1cdb893ce80385e0e23d add GPL
41db32c4936dd5d579a29b3118c6a7628c61c3d5 add distributed
bfb94db7edcb99a217483a5037ba80ca8257e40c wrote a readme file
Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^
13.回退到上一个版本”add distributed”
$:git reset --hard HEAD^
14.要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
git log
git reset --hard d1d9c943 (d1d9c943是append GPL的commit id的前7位,我们不必写全)
- .git不算工作区,而是Git的版本库
查看工作区和版本库里面最新版本的区别:
$ git diff HEAD -- readme.txt
16.文件修改丢弃
(1)丢弃工作区的修改(没有add之前):
$ git checkout -- readme.txt
(2)丢弃工作区的修改(已经add到缓冲区):
$ git reset HEAD readme.txt
$ git checkout -- readme.txt
17.删除文件:
rm test.txt
git status
(yes).确定要删除文件:
$ git rm test.txt
$ git commit -m "remove test.txt"
(no).删错文件了
$ git checkout -- test.txt
18.添加远程库
首先你要登录github, “Create a new repo”按钮,创建一个新的仓库:learngit
目前,在GitHub上的这个learngit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
现在,我们根据GitHub的提示,在本地的learngit仓库下运行命令:
$ git remote add origin git@github.com:xieguangming/learngit.git
xieguangming 是你自己GitHub账户名
如果报错:fatal: remote origin already exists.
$ git remote rm origin
$ git remote add origin git@github.com:xieguangming/learngit.git
origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。
19.就可以把本地库的所有内容推送到远程库上:
$ git push -u origin master
如果报错:先cd 到本地仓库目录: $ git push origin master --force
再 $ git push -u origin master
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样:
从现在起,只要本地作了提交(add + commit),就可以通过命令:
$ git push origin master
把本地master分支的最新修改推送至GitHub,现在,你就拥有了真正的分布式版本库!
git@github.com:xieguangming/IOTApp.git
20.git 分支
git分支查看分支 : git branch
创建分支 : git branch <name> //git branch dev
切换分支 : git checkout <name> //git branch master
创建+切换分支: git checkout -b <name> //git checkout -b dev
合并某分支到当前分支 git merge <name> //git merge dev 合并分支dev到master
删除分支 : git branch -d <name> //git branch -d dev
21.配置别名
$ git config --global alias.st status
$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.br branch
git config --global alias.unstage 'reset HEAD'
git config --global alias.last 'log -1' //配置一个git last,让其显示最后一次提交信息
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
22.解决提交代码冲突
当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成
用带参数的git log也可以看到分支的合并情况:
$ git log --graph --pretty=oneline --abbrev-commit
23.提示fatal: remote origin already exists
解决办法
1、先删除远程 Git 仓库
CloverdeiMac $ git remote rm origin
2、再添加远程 Git 仓库
CloverdeiMac git remote add origin https://github.com/xieguangming/runtime.git