Git使用笔记

在ubuntu 14.04上安装   

sudo apt-get install git

安装用到的依赖或工具   

sudo apt-get install git-doc git-svn git-email git-gui gitk

第一次使用前的配置     

git config --global user.name "Elvin"

git config --global user.email "[email protected]"

创建一个仓库(文件夹),并初始化仓库

mkdir -p /home/elvin/git_test

cd /home/elvin/git_test

git init


创建或修改一个文件

sudo touch test.txt

把文件加入暂存区

git add test.txt

提交文件到现在的分支中

git commit -m "a first test file"

查看当前分支的日志文件

git log

只显示各提交版本的commit id

git log --pretty=oneline

回退到上一个版本

git reset --hard HEAD^

git reset --hard 3628164

查询各版本号

git reflog

查询上一个已提交版本与当前文件间的差别

git diff HEAD -- readme.txt


撤销已修改的工作区文件到上一次暂存或者上一个版本

git checkout -- readme.txt

撤销已放入暂存区文件到工作区

git reset HEAD readme.txt

对于add入暂存区的文件,若误删除了,要恢复也可以

git checkout -- readme.txt

若是真正需要删除,删除后需要

git rm readme.txt

git commit -m "remove readme.txt"


创建SSH Key

ssh-keygen -t rsa -C "[email protected]"

在用户主目录的.ssh目录中,id_rsa为私匙,id_ras.pub为公匙

公匙内容贴到GitHub Account setting内的SSH Keys页面中,完成SSH Key的关联

关联本地库和远程库

git remote add origin [email protected]:elvinsys/git_test.git

把本地库内容推送到远程库(前提是远程库为空库,此为第一次本地推到远程)

git push -u origin master

以后的推送方式直接用

git push origin master

从远程库克隆镜像到本地

git clone [email protected]:elvinsys/git_test.git

(关于地址

https://github.com/elvinsys/git_test.git  为https协议

[email protected]:elvinsys/git_test.git      为ssh协议


(在win7-64bit的安装和使用)

安装包从https://git-for-windows.github.io 下载,下载后打开Git Bash进行操作

配置user.name和email,创建仓库目录,初始化仓库

生成ssh key,ssh-keygen -t rsa -C "email(并不是远程的email,而是本地的email"

在本地目录下生成了两个文件,为XXX和XXX.pub,

把他们扔到~/.ssh里,并改名为id_rsa和id_rsa.pub(重要)

把id_rsa.pub的内容贴到github上就可以准备克隆拉数据了!



显示分支

git branch

创建分支

git branch new-branch

删除分支

git branch -d new-branch

强制删除分支

git branch -D new-branch

切换分支

git checkout new-branch

创建并切换到刚创建的分支上(等同于  git branch new-branch  再  git checkout new-branch)

git branch -b new-branch

合并某分支到当前分支

git merge new-branch

对于产生的分支冲突(branch conflict)只能手动修改后才能正常合并

带可视化图形log命令

git log --graph --pretty=oneline --abbrev-commit

为了避免Fast Forward模式所造成的分支信息丢失的情况,可以通过禁用ff模式来合并分支

git merge --no-ff -m "merge with no-ff" new-branch

在非正式版master分支的工作分支上开发途中,通过保存现场,可临时切换到其他分支进行其他的工作

git stash

git checkout other-branch

当在其他分支工作完成后,可切回原先的分支,查看stash列表后,恢复现场,回复后要删除

git checkout now-branch

git stash list

git stash apply

git stash drop

(或者git stash pop,效果相等于先apply,然后自动drop)


(关于多人协作)

A君把master和dev两个分支push上github

git push origin master

git push origin dev

B君要把dev从服务器上拉下拉,先把现在的工作分支另起一分支,删掉原分支,再拉数据

git checkout -b dev_tmp

git branch -d dev

git fetch

git checkout -b dev origin/dev

修改后在push上github


对当前分支版本打新标签

git tag v1.0

查看所有的标签

git tag

对以往某个版本打新标签,要先查到那个版本的commit id

git tag v1.0 62e6714

打标签的同时,通过加入 -a -m 选项指定标签名和说明文字

git tag -a v1.0 -m "merge two files"

跳到某标签处,和查找commit id一样

git reset --hard v1.0

推送某个标签到远程

git push origin v1.0

推送所有标签到远程

git push origin --tag

删除本地标签

git tag -d v1.0

删除远程标签,要先删除本地的

git tag -d v1.0

git push origin :refs/tags/v1.0


让Git显示颜色

git config --global color.ui true


让Git忽略一些无需关注的文件,例如编译后生成的中间文件,如:*.o 

在工作去创建特殊文件.gitignore,把需要忽略的文件格式填进去。

(配置文件可从https://github.com/github/gitignore下载)

添加被.gitignore忽略的文件

git add -f test.o

检查.gitignore中的规则

git check-ignore -v test.o


配置git status命令的别名为git st

git config --global alias.st status


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章