安装完git客户端之后打开git bash,然后输入一下命令

$ git config –global user.name “Your Name”
$ git config –global user.email “email@example.com”
注意git config命令的–global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
第二步创建版本
创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录然后进入对应的目录执行$ git init就把对应的版本库创建好了
下一步就是把文件加入到版本库了
git add readme.txt 这条命令就是把对应的txt文件加入版本库
可以使用正则,如git add . 提交所有文件到版本库
git commit -m “wrote a readme file” 提交对应的仓库
git status可以查看对应版本库的状态
可以使用git diff命令查看对应的修改了哪些地方
可以使用git log查看对应不同的版本历史记录
如果感觉显示的太多,看得比较乱,可以使用git log –pretty=oneline这样子显示就清爽多了
其实看到的一大串字符串其实是版本的版本号,可用于恢复到以前的版本
返回上一个版本可以使用命令git reset –hard HEAD^,上上个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。不过一般都是直接通过版本号直接进行恢复如可执行命令 git reset –hard 3628164后面的那串字符就是版本号。版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。
用git diff HEAD — readme.txt命令可以查看工作区和版本库里面最新版本的区别
版本回滚:
对于已经git add的文件可以使用git checkout — file命令.git checkout — file命令中的–很重要,没有–,就变成了“创建一个新分支”的命令
对于已经commit的可以先使用git reset HEAD file返回上一个版本,然后再使用命令git checkout — file命令返回到最初的状态。
从工作区删除文件:
直接从工作区删除文件。然后再执行git rm test.txt然后再执行git commit -m “notice”即可。
另外一种是可能误删,这个和执行版本回滚差不多。就是git checkout –test.txt。
git远程仓库:
第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
$ ssh-keygen -t rsa -C “youremail@example.com”
如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:
然后就可以关联远程仓库了
$ git remote add origin git@github.com:zzz5323381/git.git
这个后面的地址可以从github上面的版本库地址那边复制过来
本地是空的,这个时候可以克隆远程的仓库下来,到对应的目录执行命令
git clone git@github.com:zzz5323381/git.git
关联远程仓库之后可以使用
git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。
git pull -u origin master把远程的仓库master分支同步到本地。然后再执行git push -u origin master把本地修改的相关信息同步到远程仓库master分支。
创建分支,切换分支:
git checkout -b dev git checkout命令加上-b参数表示创建并切换,相当于以下两条命令
$ git branch dev
$ git checkout dev
使用 git branch查看分支
合并分支:
git merge命令用于合并指定分支到当前分支,如当前处于master分支,则可使用git merge dev进行合并到master上面
git show d1e19d316224cddc437e3ed34ec3c931ad803958可以进行查看对应的变化
合并分支后对应的dev分支如果没用就可以删除分支,执行命令git branch -d dev删除对应的分支。删除后可以使用命令git branch查看现在的分支情况
如果在合并的时候出现冲突,则先解决冲突后再合并,如两个版本的同一个文件都进行了修改,这个时候就要进行修改后再进行合并
通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。如下命令
git merge –no-ff -m “merge with no-ff” dev
存储当前工作状态命令:git stash
恢复当前的工作状态,先回到要恢复的分支
git checkout dev后执行git stash list查看状态的现场。恢复现场的办法有两种,一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;另一种方式是用git stash pop,恢复的同时把stash内容也删了
你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令git stash apply stash@{0}
强行删除还没合并的分支,默认是不然删除还没合并的分支,强制删除分支命令:$ git branch -D feature-vulcan
查看远程仓库状态命令:git remote。或者,用git remote -v显示更详细的信息
推送至远程主分支命令:$ git push origin master推送远程其它分支命令$ git push origin dev
$ git branch –set-upstream dev origin/dev命令是把本地的dev分支和远程的dev分支进行关联这样才能从远程的dev分支pull到本地的dev分支
删除远程分支命令
git branch -r -d origin/branch-name
git push origin :branch-name 注意第二个命令的origin后面有一个空格
tag标签:
敲命令git tag 就可以打一个新标签:git tag v1.0
可以用命令git tag查看所有标签: git tag
默认标签是打在最新提交的commit上的。有时候,如果忘了打标签,比如,现在已经是周五了,但应该在周一打的标签没有打,怎么办?
方法是找到历史提交的commit id,然后打上就可以了:比方说要打上去的版本号是:6224937。则敲入命令
git tag v0.9 6224937
可以用git show 查看标签信息,git tag显示的并不是按时间顺序列出的,而是按字母排序的。
还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:
$ git tag -a v0.1 -m “version 0.1 released” 3628164
命令:$ git tag -d v0.1 可以删除一个标签
因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。
如果要推送某个标签到远程,使用命令git push origin
git push origin v1.0
或者,一次性推送全部尚未推送到远程的本地标签:$ git push origin –tags
删除远程tag标签
先删除本地标签 $ git tag -d v0.9。
然后删除远程标签:git push origin :refs/tags/v0.9
查看远程tag: git fetch origin tag
在github上多人协作编写代码:
如何参与一个开源项目呢?比如人气极高的bootstrap项目,这是一个非常强大的CSS框架,你可以访问它的项目主页https://github.com/twbs/bootstrap,点“Fork”就在自己的账号下克隆了一个bootstrap仓库,然后,从自己的账号下clone:
git clone git@github.com:zzz5323381/bootstrap.git
一定要从自己的账号下clone仓库,这样你才能推送修改。如果从bootstrap的作者的仓库地址git@github.com:twbs/bootstrap.git克隆,因为没有权限,你将不能推送修改
自定义git
在安装Git一节中,我们已经配置了user.name和user.email,实际上,Git还有很多可配置项。
比如,让Git显示颜色,会让命令输出看起来更醒目
$ git config –global color.ui true
忽略特殊文件
可以在根目录下新建一个.gitignore文件,然后在里面做配置
底下这个是一个demo配置
# Windows:
Thumbs.db
ehthumbs.db
Desktop.ini
# Python:
*.py[cod]
*.so
*.egg
*.egg-info
dist
build
# My configurations:
db.ini
deploy_key_rsa
配置git别名
我们只需要敲一行命令,告诉Git,以后st就表示status
$ git config –global alias.st status
如执行$ git config –global alias.unstage ‘reset HEAD’
后面执行的命令:$ git unstage test.py=$ git reset HEAD test.py
$ git config –global alias.last ‘log -1’
那么命令 git last=git log -1
配置Git的时候,加上–global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用.
配置文件放哪了?每个仓库的Git配置文件都放在.git/config文件中:
而当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中:

分享该文章: