// github帳戶和你的電腦關聯,配置祕鑰 SSH 公鑰 1).確認是否已經擁有密鑰 $ cd ~/.ssh $ ls authorized_keys2 id_dsa known_hosts config id_dsa.pub // 咱們須要尋找一對以 id_dsa 或 id_rsa 命名的文件, // 其中一個帶有 .pub 擴展名。 .pub 文件是你的公鑰,另外一個則是私鑰 2).若是找不到這樣的文件(或者根本沒有 .ssh 目錄) // 經過運行 ssh-keygen 程序來建立它們,默認存儲位置(.ssh/id_rsa) $ ssh-keygen 3).得到公鑰信息 $ cat ~/.ssh/id_rsa.pub
// 命令行簡單操做 D: // 當目前不在D盤的狀況下會進入D盤目錄 dir / ls // 查看當前目錄下全部目錄和文件 md xx // 新建xx文件夾 md xxx.xx // 新建文件 exit // 退出命令行 // git練習相關命令 cd ~/desktop mkdir xxx-git cd xxx-git
git init
git status // 查看狀態 git add // 添加修改 git add <文件> git add <目錄> git add . // 把作的全部修改還有新的文件添加到暫存區(*不含刪除文件*) git add -u // 把作的全部修改還有刪除的文件添加到暫存區(*不包括新文件*) git add -A // 把全部東西當道暫存區(含 修改,新文件,*替換文件*,刪除文件) git commit // 提交修改到Git倉庫 git commit -a // 把全部修改與刪除自動添加到暫存區而後提交。不包含未跟蹤文件。 git commit -m '提交的備註信息' // 設置提交信息 //// git commit --amend // 修改剛剛作的此次提交(好比修改提交的信息,或者把新的修改放到剛作的此次提交裏) //// git commit --amend --no-edit // --no-edit,表示直接用上次提交的信息 git log // 查看歷史 git log --oneline // 將每條日誌的輸出爲一行 git log --oneline -n 3 // 顯示最新的三條 git log --pretty=raw // 關於每次提交的更多信息 git log --decorate // 顯示一些相關的信息,如HEAD、分支名、tag名等 git log --decorate --oneline git log --oneline --graph // --graph 選項查看歷史,會標記出使用 --no-ff 選項之後的合併 git reflog // 查看全部分支的全部操做記錄(包括已經被刪除的 commit 記錄和 reset 的操做) git show // 查看某次提交 git show '提交節點的ID' // 展現該節點的修改詳情 git tag 'tag名稱' log編號 // 給節點貼標籤 git checkout // 檢查 git checkout '提交節點的ID' git checkout master // 簽出master分支 git checkout -b <xxxx> // -b,若是xxxx分支不存在,就建立 git revert // 撤銷 git revert '提交節點的ID' // 發生衝突 fix conflicts and run "git revert --continue" 1.打開衝突的文件,解決衝突 2.git add <衝突的文件> 3.git commit -m 'Revert "XXXX"' git reset // 重置(重置的某次提交,他以後的全部提交都會被抹掉) git add 以後執行 git reset / git reset <文件名稱> // 從暫存區拿出以前添加的修改 git reset --hard '提交節點的ID' git reset HEAD~1 --hard // 撤銷,回退到上一個版本 git clean // 清理(把未跟蹤的文件清理掉) git clean -f // git清除本地緩存命令 git rm -r --cached . git add .
// 添加 .gitignore, 並添加 node_modules echo 'node_modules' >> .gitignore
git branch // 列出分支( 分支名前的 * 標識當前所在分支 ) git branch <xxx> // 建立 xxx 分支 git checkout <xxx> // 建立後切換到 xxx 分支 git branch -r // 列出遠程分支 git branch -a // 列出本地分支和遠程分支 git branch -d <分支名> // 刪除分支 ( 或 git branch -D <分支名> ) git merge <分支名> // 合併分支 git checkout <要合併到的分支> // 先切換到"要合併到"的分支 // 1. Fast-Forward 合併,(期間,要合併到的分支沒發生什麼變化) git merge <要被合併的分支> // 2. --no-ff 合併,(歷史裏可記錄合併動做) git merge <要被合併的分支> --no-ff // 3. 3-Way 合併,(期間,要合併到的分支內容發生了變化) git merge <要合併到的分支> git rebase // 衍合過程(用於:主幹和分支對同一文件都有修改,合併時候有衝突的狀況),產生一個更爲整潔的提交歷史 git rebase <分支名> // 通常爲 git rebase master // git提示出現了代碼衝突,處理完畢後 git rebase --continue // 繼續剛纔的處理處理
通常遠程倉庫都有兩種地址,一種是 HTTPS,一種是 SSH。 HTTPS: 用的是用戶名 + 密碼的方式驗證你的身份。 SSH: 會使用 ssh-key 做爲驗證身份的方法。 // 查看遠程倉庫: git remote git remote -v // 查看詳情 // 添加另外遠程庫 git remote add 遠程庫名 遠程庫地址 例:git remote add origion https://。。。。。 // 刪除該遠程庫:git remote rm [name] git remote remove 遠程庫名 ( git remote rm 遠程庫名 ) 例:git remote remove origin(通常都是叫origin) // 改變遠程庫的名字 git remote rename 舊名稱 新名稱 例:git remote rename origin neworigin(把origin改爲neworigin) // 推送遠程倉庫 git push [remoteName] [localBranchName] // 按以下格式提交分支至線上時,會自動建立 MR git push 主機名 本地分支名:mr/線上目標分支名/本地分支名 // 加上了 -u 選項之後,下面能夠直接執行:git push git push -u [remoteName] [localBranchName] // 克隆/複製 git clone <遠程倉庫地址> <new_project> // 上面的指令 -- 將遠程版本庫徹底克隆到本地 new_project 目錄下 // new_project 可省略 // 下載 git fetch 遠程 分支 // 拉取遠程倉庫 ( 至關於 git fetch + git merge ) git pull [remoteName] [localBranchName] git pull --rebase 遠程 // --rebase 選項,會用 git rebase 代替 git merge // 修改遠程倉庫 git remote set-url --push [name] [newUrl]
// 查看配置信息 git config --list // 獲取配置 name and email git config user.email git config user.name // 設置當前倉庫的 user.name / user.email git config user.email xxxx git config user.email xxxxxx@xxx.com // 設置全局 user.name / user.email git config --global user.name xxxxx git config --global user.email xxxxxx@xxx.com
(持續更新~)javascript
1. 若是出現 warning: LF will be replaced by CRLF // (字符轉換的問題 -- 包含混合換行符) git config --gobal core.autocrlf false // 提交檢出均不轉換 2. git pull 失敗,出現 fatal: refusing to merge unrelated histories //(加上 --allow-unrelated-histories, 進行強行合併) // 緣由:兩個根本不相干的 git 庫,一個是本地庫,一個是遠端庫,本地要去推送到遠端,被告知沒法合併 git pull origin master --allow-unrelated-histories