git 的基本使用

基本概念

  • git 特點
    • 本地存儲完整項目,離線使用
    • 不逐行比較,只保存修改過的文件,未修改的文件不處理
  • git文件的三種狀態(tài)
    • 已提交(committed) -- 已保存到倉庫中受管理的文件
    • 已修改(modified) -- 已修改,但未放到暫存區(qū)的文件
    • 已暫存(staged) -- 放到寄存區(qū),未提交給倉庫的文件
  • git工作流


    git工作流

安裝及配置

(ubuntu14下)

  • sudo apt-get install git
  • git config --global user.name "userName", git config --global user.email "user@email.com"
    (其他配置)

基本操作

  • 創(chuàng)建倉庫(工作目錄) - mkdir git_dir, cd git_dir,git init
  • clone 已有項目到倉庫 - git clone url
  • 添加工作目錄中的(新跟蹤的或已修改的)文件/文件夾到暫存區(qū) - git add fileName/direction
  • 提交文件到倉庫 - git commit -m "what changed"
  • 修改上次提交的信息
    • 僅本地: git commit --amend
    • 已在遠(yuǎn)程: git push -f
  • 查看當(dāng)前工作目錄的文件狀態(tài) - git status
  • 查看已修改文件與歷史版本的比較 - git diff,圖形比較界面 git difftool
  • 忽視文件(不受git管理) - 創(chuàng)建并配置文件 .gitignore
  • 恢復(fù)被修改的文件 - git checkout -- <file>
  • 刪除文件 - git rm file, 刪除目錄: git rm -r folder
  • 查看提交記錄
    • 一般情況(使用reset后之前的記錄會被沖掉) - git log
    • 所有提交過的記錄 - git reflog
    • 精簡顯示 git --name-status --oneline 可設(shè)置快捷別名:git config --global alias.ll 'log --name-status --oneline'
  • 取消放入暫存區(qū)的文件 git reset HEAD <file>
  • 版本回退 git reset --hard HEAD
  • 打標(biāo)簽 git tag -a v0.0.1 -m "tag message"
  • 儲藏(用于工作被打斷時,暫存當(dāng)前的工作狀態(tài)) - git stash ,
    • 顯示暫存狀態(tài):git stash list,
    • 恢復(fù)暫存狀態(tài): git stash apply
    • 刪除暫存狀態(tài):git stash drop
    • 恢復(fù)暫存狀態(tài):git stash pop
  • 分支操作
    • 查看分支:git branch
    • 創(chuàng)建分支:git branch branchName
    • 切換分支: git checkout branchName
    • 刪除分支:git branch -d branchName
    • 創(chuàng)建并切換分支:git checkout -b branchName
    • 合并分支:git merge branchName

解決沖突

  • 直接使用某個分支
# 使用當(dāng)前分支的文件
git checkout --ours <file>

# 使用被合并的文件
git checkout --theirs <file>
  • 手動解決沖突

    • 在自己編輯器中修改
    • 借助 git mergetool
  • 通過習(xí)慣避免沖突

    • 修改代碼之前 先 pull 代碼
    • 通過 git flow 管理項目開發(fā)

遠(yuǎn)程git倉庫的使用 --阮一峰blog

使用git服務(wù)器

  1. 初始化一個本地倉庫 git init
  2. 將現(xiàn)有倉庫clone出一個裸倉庫 git clone --bare my_project my_project.git -- 相當(dāng)于 cp -rf my_project/.git my_project.git
    遠(yuǎn)程倉庫通常以.git命名的裸倉庫
  3. 將裸倉庫拷貝到遠(yuǎn)程服務(wù)器上 scp -r my_project.git user@host:/path
    scp 為security copy 用于實現(xiàn)兩個主機間的加密傳輸
  4. 至此,遠(yuǎn)程倉庫就搭建好了,可通過git clone命令獲取倉庫內(nèi)容
  5. 建立遠(yuǎn)程倉庫的連接 git remote add origin git_server_path
  6. 從遠(yuǎn)程倉庫獲取內(nèi)容 git pull origin master
  7. 將本地倉庫內(nèi)容推送到遠(yuǎn)程倉庫 git push origin master

使用github

  1. 本地git設(shè)置
git config --global user.name "*YOUR NAME*"
git config --global user.email "*YOUR EMAIL ADDRESS*"
  1. github創(chuàng)建倉庫
  2. 通過ssh協(xié)議clone倉庫 git clone ssh_address / 或者本地創(chuàng)建好項目,再git remote add remoteRepoName gitRepoPath
  3. 將本機公鑰上傳到github
    • 創(chuàng)建公鑰 ssh-keygen -t rsa -C "[your_email@youremail.com]" (如果有則不需要)
    • 復(fù)制~./ssh/id_rsa.pubhttps://github.com/settings/ssh新建的記錄
  4. 驗證 git -T git@github.com
  5. 通過git進行遠(yuǎn)程操作

參考資料:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容