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