1. init
在各大網(wǎng)站上創(chuàng)建倉庫颊艳,可以選擇是否需要初始化茅特。
如果在網(wǎng)站的倉庫中不進行初始化,鏈接遠程倉庫以后棋枕,需手動初始化白修。
如果倉庫已經(jīng)初始化,則直接克隆使用重斑。
2. 遠程倉庫相關操作
- 添加遠程倉庫:$ git remote add [name] [url] //這里的name相當于是自己定義一個
- 刪除遠程倉庫:$ git remote rm [name]
- 修改遠程倉庫:$ git remote set-url --push [name] [newUrl]
- 拉取遠程倉庫:$ git pull [remoteName] [localBranchName] //localBranchName 可以是提交分支
- 推送遠程倉庫:$ git push [remoteName] [localBranchName]
3. .gitignore 忽略部分文件
比如.DS_Store
4. 更改用戶名和郵箱
- $ git config --global user.name "<用戶名>" //還有個--local關鍵字
- $ git config --global user.email "<郵箱>"
5. 基本操作
- git status //查看狀態(tài)
- git add <文件名> //添加一個文件
- git add -A //添加全部文件
- git commit -m "備注" //提交 上傳
- git rm //刪除某個元素
6. 分支
- git branch //查看分支
- git checkout -b [分支名] //創(chuàng)建分支并切換
- git checkout [分支名] //切換分支
- git merge [分支名] //合并某分支到現(xiàn)有分支
7. 回退
- git log
查看commit 的唯一代碼 - git reset
git reset --mixed
默認的方式 --mixed可以省略
會保留源碼,只是將git commit和index 信息回退到了某個版本git reset --soft
保留源碼,只回退到commit 信息到某個版本.不涉及index的回退,如果還需要提交,直接commit即可. (不太明白)git reset --head
不保留源碼 回退到某個版本
- git revert
revert 用于反轉提交兵睛,commit之后好像就是覆蓋之前的某個log記錄
git revert //回劵
兩者的區(qū)別:
上面我們說的如果你已經(jīng)push到線上代碼庫, reset 刪除指定commit以后,你git push可能導致一大堆沖突.但是revert 并不會.
如果在日后現(xiàn)有分支和歷史分支需要合并的時候,reset 恢復部分的代碼依然會出現(xiàn)在歷史分支里.但是revert 方向提交的commit 并不會出現(xiàn)在歷史分支里.
reset 是在正常的commit歷史中,刪除了指定的commit,這時 HEAD 是向后移動了
revert 是在正常的commit歷史中再commit一次,只不過是反向提交,他的 HEAD 是一直向前的.
8. 比較
- 覆蓋
git diff [分支1] [分支2] > a.txt - 追加
git diff [分支1] [分支2] >> a.txt - 查看當前版本的改動
git diff [分支1] > a.txt