git的學習筆記(一):git本地操做html
ssh-keygen -t rsa -C "your_email@example.com"
執行命令後會在用戶的家目錄生成.ssh的隱藏文件夾,文件夾裏有公鑰id_rsa.pub和私鑰id_rsagit
在gitlab或者gitee網站添加密鑰的方式與github添加密鑰的方式相同github
git remote add github <remote URL> 使用https方式將本地倉庫關聯到遠程倉庫(遠程倉庫名默認爲origin) git remote add github git@github.com:用戶名/repo_name.git 使用git方式將本地倉庫關聯到遠程倉庫 git remote remove github 刪除關聯到本地的遠程倉庫,origin是遠程庫的名字 git branch --set-upstream-to=origin/smart smart 將分支smart設置爲跟蹤來自origin的遠程分支smart git push 把本地的全部提交推送到默認的遠程的倉庫 git push github -all git pull github master 將遠程origin代碼拉到本地master分支 git push github master 將本地master分支代碼推送到遠端倉庫 git clone <HTTP URLs/remote URL> 複製遠程項目到本地
先切換到須要合併的分支,例如:本地master分支web
git checkout master
合併本地分支和遠程分支shell
# 把本地分支和遠程倉庫的master這兩個不相關,獨立的分支合併 git merge --allow-unrelated-histories github/master
在彈出的窗口中修改內容並退出,即爲commit的內容瀏覽器
不一樣的人修改了同一個項目的不一樣文件,且都已經提交到過程倉庫時ssh
首先用戶A把遠程倉庫的分支拉取到本地倉庫ide
git fetch github git branch -av # 查看本地倉庫和遠程倉庫的全部分支信息
在這個時間段內,另外一個用戶B又在他的分支作修改並提交到遠程倉庫後,用戶A使用 git push github 命令同步本地修改到遠程倉庫會提示異常gitlab
用戶A的解決方法:學習
git fetch github # 拉取遠程倉庫的分支信息 git merge github/用戶B的分支 # 把用戶B的分支與本地分支進行合併 git push github # 推送到遠程倉庫
用戶A修改某個文件,提交併同步到遠程倉庫
用戶B也修改這個文件,而後commit,在同步到遠程倉庫時會報錯
用戶B解決方法:
git fetch git merge origin/用戶A的遠程分支 # 用戶A修改後提交到哪一個分支,就合併哪一個分支 git push # 用戶B同步分支到遠程倉庫的指定分支
用戶A修改某個文件的某一行,提交併同步到遠程倉庫
用戶B也修改這個文件的同一行,而後commit,在同步到遠程倉庫時會報錯
用戶B的解決方法:
git pull # 把遠程倉庫的用戶A的修改拉取到本地併合並,會提示 conflict 修改衝突文件,解決衝突 git commit -m "commit message" # 提交修改 git push github # 同步到遠程倉庫
用戶A修改文件名,提交併同步到遠程倉庫
用戶B也修改這個文件的內容,而後commit,在同步到遠程倉庫時會報錯
用戶B的解決方法:
git pull # 把遠程倉庫的用戶A的修改拉取到本地併合並,會提示修改合併後的提交信息 git push github # 同步到遠程倉庫
git會自動把用戶B的文件名修改爲用戶A修改後的文件名
用戶A修改文件名,提交併同步到遠程倉庫
用戶B也修改這個文件的文件名,而後commit,在同步到遠程倉庫時會報錯
用戶B的解決方法:
git pull # 把遠程倉庫的用戶A的修改拉取到本地併合並,並同時顯示兩個內容相同但文件名不一樣的文件 git diff file1 file2 git status git rm file # 這裏的file爲沒有被修改以前的文件名 git add file1 # 把 file1 添加到暫存區 git rm file2 # 刪除 file1 git commit -m "commit message" git push
多人協做開發時,禁止使用的命令,會形成之前提交的信息丟失
git push -f # 強制 push
參考gitee網站:Git配置多個SSH-Key
ssh-keygen -t rsa -C 'xxxxx@qq.com' -f ~/.ssh/gitee_id_rsa ssh-keygen -t rsa -C 'xxxxx@qq.com' -f ~/.ssh/github_id_rsa ssh-keygen -t rsa -C 'xxxxx@qq.com' -f ~/.ssh/gitlab_id_rsa
# gitee Host gitee.com HostName gitee.com PreferredAuthentications publickey IdentityFile ~/.ssh/gitee_id_rsa # github Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/github_id_rsa # gitlab Host gitlab.com HostName gitlab.com PreferredAuthentications publickey IdentityFile ~/.ssh/gitlab_id_rsa
Administrator@DESKTOP-B5TMUVT MINGW64 ~/.ssh $ ssh -T git@gitee.com Warning: Permanently added the ECDSA host key for IP address '120.55.226.24' tothe list of known hosts. Hi SING890925! You've successfully authenticated, but GITEE.COM does not provide shell access. Administrator@DESKTOP-B5TMUVT MINGW64 ~/.ssh $ ssh -T git@github.com The authenticity of host 'github.com (13.229.188.59)' can't be established. RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'github.com,13.229.188.59' (RSA) to the list of known hosts. Hi renpingsheng! You've successfully authenticated, but GitHub does not provideshell access. Administrator@DESKTOP-B5TMUVT MINGW64 ~/.ssh $ ssh -T git@gitlab.com The authenticity of host 'gitlab.com (35.231.145.151)' can't be established. ECDSA key fingerprint is SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'gitlab.com,35.231.145.151' (ECDSA) to the list of known hosts. Welcome to GitLab, @renpingsheng!
以下圖所示
git help --web log # 打開瀏覽器查看git log幫助文檔