Git命令行大全:http://mp.weixin.qq.com/s/hYjGyIdLK3UCEVF0lRYRCg
http://www.yiibai.com/git/git_pull.html
升級git版本
git --version // 查看當(dāng)前git版本
git update-git-for-windows // 升級git版本
分支
Github倉庫默認(rèn)有一個master分支
開發(fā)過程中接到新的功能需求
創(chuàng)建一個新的分支同步開發(fā)互不影響
開發(fā)完成后劳曹,合并merge到主分支上
git branch new_branch // 創(chuàng)建一個新的分支
git checkout new_branch // 切換分支
git checkout -b new_branch // 新建一個分支并立即切換到新分支上
git branch -al // 查看當(dāng)前所有的分支(分支列表)
git merge new_branch // 合并分支
git push // 上傳到github倉庫
- 刪除分支【合并分支之后把無用的分支刪掉】匾鸥,查看分支=》刪除=》再查看對比
$ git branch -D new_branch
- 刪除遠(yuǎn)程分支: $ git push origin --delete mo 【假設(shè)有遠(yuǎn)程分支 remotes/origin/mo】
- 大家在刪除遠(yuǎn)程分支后,還是可以看到已刪除的遠(yuǎn)程分支,時間一長就顯的非常亂了
git branch -al
以下是解決方法:
git remote show origin //可以看到刪除分支情況
git remote prune origin
再執(zhí)行
git branch -al
tips:
- 錯誤:refusing to merge unrelated histories.
將new_branch分支的文件合并到master分支上
$ git merge new_branch --allow-unrelated-histories
- 將改動提交到某一個分支上
$ git push --set-upstream origin kailas
Paste_Image.png
版本回退
git log // 查看git提交記錄
git reset --hard 6e234234e45dret34sdrfe34rerewr43 // 將版本回退到6e234234e45dret34sdrfe34rerewr43
git log // 再次查看記錄,此時HEAD指向之前回退的版本
git push -f // 因為已經(jīng)推上去的版本,遠(yuǎn)程版本比本地的要舊,此時必須pull后才能push, 這里使用 -f 強(qiáng)制上傳覆蓋遠(yuǎn)程版本
image.png
git強(qiáng)制覆蓋:
git fetch --all
git reset --hard origin/master
git pull
git強(qiáng)制覆蓋本地命令(單條執(zhí)行):
git fetch --all && git reset --hard origin/master && git pull
第一個是:拉取所有更新,不同步温鸽;
第二個是:本地代碼同步線上最新版本(會覆蓋本地所有與遠(yuǎn)程倉庫上同名的文件);
第三個是:再更新一次(其實也可以不用手负,第二步命令做過了其實)
用戶
// 查看當(dāng)前倉庫user
git config user.name
git config user.email
// 修改當(dāng)前倉庫user
git config user.name ShariseMo
給本地文件夾添加git
git init #創(chuàng)建git依賴
git touch .ignore #創(chuàng)建.gitignore文件涤垫,不提交到github上面去
.gitignore 是 git ignore 規(guī)則,該文件的內(nèi)容是一些規(guī)則竟终,作用是告訴git有哪些文件不需要添加到git版本管理中蝠猬。在實際項目中,有很多的文件是不需要版本管理的衡楞,例如一些包含密碼的配置文件等吱雏。
常用規(guī)則:
(1) /node_modules/ : 過濾掉整個node_modules文件夾
(2) *.doc : 過濾掉所有的 .doc 的文件
(3) /aa/.doc : 過濾某個具體的文件
在這些前面加上 ! 感嘆號瘾境,則表示僅添加這些文件 eg:歧杏!/aa/.doc
/public/* // 忽略public的
!/public/index.php //不忽略index.php這個文件
Paste_Image.png
image.png
git add
git commit -m "init"
git remote add origin 你的github倉庫地址
git push
image.png
- $ git remote rm origin 清除已連接的遠(yuǎn)程倉庫
- $ git remote -v // 查看遠(yuǎn)程連接了哪些倉庫
- $ git remote add origin 你的github倉庫地址 // 添加遠(yuǎn)程連接git
解決沖突
-
當(dāng)Git上面兩者上傳的代碼有沖突的時候,
image.png 并入新的配置項
git stash
git pull
git stash pop
直接用代碼庫中的代碼完全覆蓋本地代碼
git reset --hard
git pull
解決每次提交都需要輸入賬號密碼的方案
image.png
image.png
git add 的一些用法
- $ git add . // 提交被修改的和新建的文件迷守,但不包括被刪除的文件
- $ git add -u --update // update tracked files 更新所有改變的文件犬绒,即提交所有變化的文件
- $ git add -A --all // add changes from all tracked and untracked files 提交已被修改和已被刪除文件,但是不包括新的文件
- $ git add file_1 file_2 file_3 //添加多個文件到暫存區(qū)兑凿,以空格隔開
add的文件多了凯力,想清掉add的文件 - $ git reset HEAD . // 若什么都不加 , 則是清除掉暫存區(qū)所有add的文件
- $ git reset HEAD xxxxx/xx.aa.php // 清除掉add的某一個文件
- $ git reset --soft HEAD^ // commit之后想撤回
git 添加gitignore無效
$ git rm --cached ./vendor/ -r
https://blog.csdn.net/u010940300/article/details/49204597
image.png
獲取公鑰
cat ~/.ssh/id_rsa.pub
設(shè)置別名的文件
vim ~/.bashrc
vim ~/.zshrc