git最簡教程

syrchina發表於2018-02-09

git note
1. git init
2. git add mycode.c
3. git commit -m "add mycode.c file"
4. git remote add origin git@github.com:username/prj_name.git
5. git push -u origin master //這一步可能出錯,原因是github中的README.md檔案不在原生程式碼目錄中,需先 git pull --rebase origin master
6. 後續提交方法:
    a. git add filename
        全部add: git add .
        只add已新增檔案:git add . -u
    b. git commit -m "log"
    c. git push origin master
       (with gerrit: git push origin HEAD:refs/for/master)
7. diff:
    a. git diff <commit> <filename>
    例如前兩次提交的差異:git diff HEAD^ HEAD src/button.c
        HEAD 最近一次 commit
        HEAD^ 上次提交
        HEAD~100 上100次提交
    不帶filename則表示全部diff
8. 使用者名稱和郵箱設定:
    修改全域性使用者名稱和郵箱:
    git config --global user.name "name"
    git config --global user.email "email"
    為本目錄設定專用使用者名稱和郵箱:
    開啟.git資料夾下的.config檔案,增加如下內容:
    [user]
        name = your_name
        email = your_email_address
9. branch:
    a. 新建並進入branch: git checkout -b branch_1
    b. 回到master: git checkout master
    c. merge branch_1 到 master:
        git checkout master
        git merge branch_1 (如果沒有衝突,會自動合併和commit;如果有衝突,需手動合併和commit, 可以用工具git mergetool)
    d. 刪除branch: git branch -d branch_1
    e. 檢視全部branch: git branch -a
    f. checkout新分支到某個歷史版本: git checkout -b branch_1 commit-id 
    
10. 刪除檔案
    git rm filename

11. 回滾到某次提交:
    git reset --hard commit_id

12. 修改最近一次提交:
    git add .  #這一步如果只是修改commit message不用輸入
    git commit --amend
    #彈出vim視窗並輸入修改後的commit message,儲存
    git push <remote> <branch> -f #若還沒有推送到遠端,不用輸入

13. 修改git log:
    git rebase -i HEAD~5 #回到倒數第5次的狀態
    在彈出的vi視窗內,將要修改的log前面的pick改為reword,儲存退出
    逐個彈出reword的log視窗,按需修改,然後儲存退出
    完成,可git log檢視修改結果

相關文章