1. 程式人生 > >Git操作命令和GitHub使用

Git操作命令和GitHub使用

過程 ssh key 環境 公鑰 多個 設置 創建文件夾 管理 基礎上

git 代碼協同管理工具

代碼管理工具作用

* 防止代碼丟失,做備份
* 代碼版本的管理,可以進行多個節點的備份,在多個版本    之間跳躍
* 可以方便的將代碼在多人之間進行共享傳輸
* 多人開發時有各種模式可以方便代碼管理

什麽是git

    git是一個開源的分布式版本控制系統,可用於高效的管理大小項目。

    分布式和集中式

    分布式: 每個節點都保存完成的代碼,沒有明確的中央服           務器,節點之間項目推送下載代碼完成代碼共享

    集中式: 代碼集中管理,每次完成的代碼上傳到中央管理           器,然後再統一從中央管理器下載代碼使用

git特點

    * git可以管理各種文件,特別是代碼項目,多在*nix系統中使用
    * 是分布式管理,不同於集中式,這是git和svn的核心區別
    * git可以更好的支持分支,方便多人協同工作
    * git分布式代碼更安全,有全球唯一的commit版本號
    * git是開源的系統
    * 使用git可以脫網工作,且數據傳輸速度較快

git安裝

    linux : 
    sudo apt-get install git

    windows : msysgit.github.io

git 配置命令

    git config

    配置級別  
       1. 系統中所有的用戶都可使用該配置
          命令 : git config  --system   
          配置文件: /etc/gitconfig

       2. 當前用戶可使用該配置
          命令 : git config  --global
          配置文件: ~/.gitconfig

       3. 當前項目可使用該配置
          命令 : git config
         配置文件: project/.git/config

配置內容:

   1. 配置用戶名
      e.g.  配置用戶名為Tedu
      sudo git config --system user.name Tedu
   2. 配置用戶郵箱
      e.g.  配置郵箱
      git config --global user.email [email protected]
   3. 配置編譯器
      e.g.  配置編譯器
      git config core.editor sublime
   4. 查看配置信息
      git config --list

git基本命令

    初始化倉庫
  git init 

  * 在某個目錄下初始化倉庫後會自動產生.git目錄。該目錄下工作的所有文檔即可以使用git進行管理

查看分支狀態

  git status

  * 默認工作分支為master,可通過創建新的分支切換

文件提交

   git  add   [file]

   * 將文件提交到暫存區
   * 提交內容可以是一個文件,多個文件用個空格分開
   * 如果是 * 表示所有文件,也可以是目錄

   刪除暫存區某個文件提交記錄
   git rm --cached Readme.txt

文件同步到本地倉庫

  git commit -m "some message"

   * 同步時需要附加一些同步信息 在-m後添加
   * 所有對工作區的修改如果想同步到本地倉庫,都需要    add--->commit

查看commit日誌

    git log
    git log  --pretty=oneline

一些工作區命令

    查看本地文件和工作區差異
    git  diff   file

    從本地倉庫恢復文件
    git checkout file

    丟棄工作區修改
    git checkout -- file

本地倉庫文件的移動和刪除

     移動文件
     git  mv   file  dir 
 
     刪除文件
     git  rm   file

     * 用法和mv rm命令相同。操作後直接commit即可工  作區和本地倉庫同步

回到之前版本

   git reset --hard HEAD^

   * HEAD後的^數量決定了回到上幾個版本

   git reset --hard  commit_id

   * 使用commit前7位即可,回到指定的版本

去往更新的版本

   1. 查看所有歷史版本號
      git  reflog
   2. 使用git reset 去往指定版本

   * git reflog 會有所有的操作記錄,最新的操作時鐘在   最上邊

標簽管理

什麽是標簽 : 即在當前工作位置添加快照,保存工作狀態,一般用於版本的叠代。

    創建新的標簽
    git  tag  v1.0

    * 默認在最新的commit_id處打標簽

    添加標簽信息
    git  tag v1.0  -m  "message"

    指定某個commit_id打標簽
    git  tag  v0.9  [commit_id]

    查看標簽
    git  tag    #列出當前標簽
    git show v1.0  #顯示標簽具體信息

    刪除標簽
    git  tag -d  v1.0

    去往某個標簽版本
    git reset --hard  v0.9

臨時工作區操作

    創建保存臨時工作區
   git  stash

    查看保存的工作區
   git  stash  list

    應用哪個工作區
   git stash apply stash@{1}

   應用上一個工作區並且刪除
   git stash pop

    刪除工作區
   git stash drop stash@{0}   #刪除某一個
   git stash clear            #刪除所有

分支操作

  什麽是分支?
      分支即每個人獲取原有代碼,在此基礎上創建自己的工作環境,單獨開發,不會影響其他分支的操作。開發完成後再統一合並到主線分支中。

  分支的好處:安全,不影響其他人工作,自己控制進度

    查看當前分支
    git  branch

    * 前面有 * 號的分支表示當前正在工作的分支

    創建分支
    git branch  [branch_name]

    切換工作分支
    git checkout [branch]

    創建並切換到新的分支
    git checkout -b [branch_name]

    分支合並
    將某個分支合並到當前分支
    git merge  [branch]

    * 合並過程中如果沒有沖突則直接合並後當前分支即為   幹凈的狀態
    * 如果產生沖突則需要人為選擇然後在進行add    commit等操作
    * 在創建分支前盡量保證當前分支是幹凈點,以減少沖突的發生

    刪除分支
    git branch -d [branch_name]

    強制刪除沒有合並的分支
    git branch -D [branch_name] 

遠程倉庫

    遠程倉庫 : 遠程主機上的倉庫。實際上git是分布式的,每一臺主機的git結構都相似,只是把其他主機的git倉庫叫做遠程而已。

    創建共享倉庫
    1. 創建文件夾
       mkdir  gitrepo
    2. 設置文件夾屬主
       chown tarena:tarena gitrepo
    3. 將該文件夾設置為可共享的git倉庫
       cd gitrepo
       git init  --bare  fly.git
    4. 設置本地倉庫屬主
       chown -R tarena:tarena fly.git

    添加遠程倉庫

    git remote add origin [email protected]:/home/tarena/AID1807/gitrepo/fly.git

    * 默認使用SSH作為傳輸手段
    * 必須在本地的某個git倉庫下執行才能使本地倉庫和遠程   倉庫關聯

    刪除遠程主機

  git remote  rm  [origin]

    將本地分支推送到遠程

  git push -u origin master

  * 在第一次向遠程倉庫推送時需要加 -u選項,以後就不   需要了

    從遠程倉庫獲取項目
  git clone  [email protected]:/home/tarena/AID1807/gitrepo/fly.git

    從遠程倉庫拉取分支或代碼
  直接拉取遠程分支和當前工作分支合並
  git pull origin dev_Tom 

  拉取遠程分支到本地,不合並
  git pull origin  dev_Tom     :   dev_Tom
              遠程分支名      本地分支名

代碼退出和拉取

    將本地代碼推送到連接的遠程倉庫
    git  push 

    git push  --force  origin (當本地版本比遠程版本舊                            是用本地舊版本覆蓋遠程                            新版本)

    從遠程倉庫更新代碼
    git  pull
    git  fetch  (如果有新的分支拉取到本地不會和本地              分支合並)

github

    github是一個開源項目社區網站。擁有全球最多的開源項目。開發者可以註冊這個網站建立自己的github倉庫。然後就可以在本地通過git像操作遠程倉庫一樣操作github倉庫。

    git是github唯一指定的代碼管理工具

    網址:https://github.com/

    添加ssh秘鑰
   1. 在本地主機生成ssh密鑰對
      ssh-keygen
  
      * 默認密鑰對存放在 ~/.ssh/ 下
      * 生成過程會提示設置密碼,如果直接回車則表示不設置密碼

   2. 進入 ~/.ssh 目錄 復制 id_rsa.pub 公鑰內容
   3. 登錄github賬號  
       右上角頭像下拉菜單--》settings --》
       左側 SSH and GPG keys --》new ssh key --》填寫title,將復制內容加入key文本框 點擊add...

    創建新的github倉庫
  右上角 + 下拉菜單 --》 new repository --》 填寫參考名和基本描述 ,根據情況選擇是否添加readme等內容,選擇共有還是私有 --》 點擊創建

    操作github倉庫
  1.git remote 連接遠程github倉庫 如果需要輸入密碼輸   入github密碼即可
  2. 使用git push等操作遠程倉庫的方法操作即可

Git操作命令和GitHub使用