git学习和使用(二) 远程版本库的操作和一些git的概念

上篇文章基本上把git的本地版本库的操作说了个差不多,只要你试着使用git维护一个项目,基本上就可以熟悉这个流程了,现在说一下git的远程库操作

使用git远程仓库,你首先得在github上注册一个帐号,git的文件传输使用了ssh保密协议,你需要创建自己电脑的ssh key。你可以先查看一下在你的用户目录下是否有 id_rsa 和 id_rsa.pub两个文件,如果有的话,就不需要生成了,如果没有的话

➜  ~  >ls .ssh 
id_rsa      id_rsa.pub  known_hosts
➜  ~  >ssh-keygen -t rsa -C "你的邮箱"

然后登录github网站,把你id_rsa.pub里的内容添加到github SSH Keys中,这样你的电脑就被github认识了,你也就可以往自己的远程仓库推送东西了,别人的电脑没有在你的仓库认证过,所以别人的推送是失败的。

在右上角找到新建仓库命令,Create a new repo,添加仓库名,其他默认,然后确定,一个远程仓库就OK了。你可以在本地克隆这个仓库,也可以把这个仓库和你本地的项目关联起来,推送内容到远程仓库

#关联本地项目到远程库,origin是git默认的远程库名,是可以更改的,切换到本地项目目录,然后运行关联命令,初学者记得,这里关联的是自己的远程库地址,别复制 - -
➜  ~  >cd tiansi_git 
➜  tiansi_git git:(master) >git remote add origin git@github.com:tiansidehao/tiansi_git.git

现在你的项目就和远程仓库关联起来了,现在你就可以把你本地库的内容推送到远程库了

➜  tiansi_git git:(master) >git push -u origin master
Counting objects: 14, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (14/14), done.
Writing objects: 100% (14/14), 3.13 KiB | 0 bytes/s, done.
Total 14 (delta 9), reused 0 (delta 0)
To git@github.com:tiansidehao/uubpay_server.git
   7205390..14efbb7  master -> master

推送成功,其实就是把当前分支推送到远程仓库,第一次推送的时候,加上-u 参数,会自动把分支对应起来,以后的推送命令就可以简化了,直接push就可以了

#推送master分支到origin(远程仓库)
➜  tiansi_git git:(master) >git push origin master

到这里git的基本操作就介绍个差不多了,说一下git的其他配置

在你本地的每个git管理的项目下,都有.git/config文件,记录了这个项目下,你git的配置信息

➜  tiansi_git git:(master) >cat .git/config 
[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true

在用户目录下,还有git的全局配置文件 .gitconfig,里面定义了你的git配置,记得在这里把你的姓名和邮箱写清楚,你提交内容的时候,用户信息就是从这读取的

➜  ~  >cat .gitconfig 
[user]
    email = [email protected]
    name = "田斯"
[color]
    ui = true
[alias]
    last = log -1
    st = status

下面把git的常用命令全部写下来

"初始化git仓库,记得在项目目录下运行" git init
"添加文件到暂存区" git add <file>
"把暂存区文件提交到本地版本库" git commit -m "提交log"
"查看工作区的状态" git status
"查看修改内容" git diff
"版本回退" git reset
"查看提交历史" git log
"查看命令历史" git reflog
"版本库文件覆盖工作区" git checkout
"删除文件" git rm
"关联远程库" git remote add origin "你的远程库地址"
"第一次推送" git push -u origin master
"推送分支到远程库" git push -u origin master
"克隆远程库" git clone "远程库地址"
"查看分支" git branch
"创建分支" git branch 分支名
"切换分支" git checkout 分支名
"创建+切换分支" git checkout -b 分支名
"合并指定分支到当前分支" git merge 分支名
"删除分支" git branch -d 分支名
"查看分支合并图" git log --graph
"查看远程库信息" git remote -v
"获取远程库代码" git pull
"新建标签,标签默认打到最新一次的commit,也可以指定" git tag 标签名
"查看标签信息" git show 标签名
"查看所有标签" git tag
"推送一个本地标签" git push origin 标签名
"推送全部未推送过的本地标签" git push origin --tags
"删除一个本地标签" git tag -d 标签名
"删除一个远程标签" git push origin :refs/tags/标签名

如果你觉得命令太长,git提供你使用别名的方式,使用git config 命令就可以

➜  uubpay_server git:(master) >git config --global alias.st status
➜  uubpay_server git:(master) >git st
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean

命令大概只有这些,但是有的项目有很多乱七八糟的问题,很大,而且基本上没有改动,比如图片,视频文件,总不能每次把这些文件也传到版本库吧,那么就需要配置git的忽略文件了,在你的项目目录下,有.gitignore文件,里面定义的就是git管理会忽略的内容,你只需要把文件类型或者文件名加入到其中,就OK了

➜  uubpay_server git:(master) >cat .gitignore 
# See https://help.github.com/articles/ignoring-files for more about ignoring files.
#
# If you find yourself ignoring temporary files generated by your text editor
# or operating system, you probably want to add a global ignore instead:
#   git config --global core.excludesfile '~/.gitignore_global'

# Ignore bundler config.
/.bundle

# Ignore the default SQLite database.
/db/*.sqlite3
/db/*.sqlite3-journal

最后说一下,git的管理流程,你新建或者修改了文件,先从工作区add到暂存区,然后commit到本地库,然后本地库push到远程库,到这里你的代码才算是存到了github上,记得在每次push前 git pull 拉取一下代码,以防冲突。

git的学习都是从廖雪峰老师的博客下学习的,致谢,附上传送门

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