秘鑰添加
1.ssh-keygen -t rsa -C "xxxx@xxxx.com"
安裝git之后,查看我的電腦,用戶,xxx(就是你本人的文件夾),是否含有.ssh目錄,有的話進去查看有沒有id_rsa和id_rsa.pub兩個文件。沒有的話,就執行這一步的命令,生成秘鑰,有的話就跳過這一步。
2.打開 id_rsa.pub文件,復制里面的內容,將內容復制到自己的github或者gitlab的SSHkeys當中。這樣就省去了每次提交都要輸入賬號密碼的問題。
git 配置
配置本機的用戶
git config --global user.name "xxxx"
git config --global user.email "xxx@xxx.com"
git clone
git clone xxxxx
克隆遠程倉庫,建立關聯,在本地查看遠程倉庫代碼。
git clone -b 分支名 分支地址
克隆遠程倉庫的指定分支,建立關聯。
git status
查看本地倉庫是否干凈,即是否有未暫存的內容。
git add
git add xxx文件
添加文件到暫存區,可使用 git add . 添加全部文件到暫存區。
git commit
git commit -m "xxxx"?
提交到當前分支,并書寫本次提交的內容
git push
git push xxx xxxx
推送到當前分支的遠程倉庫
git pull
git pull xxx xxx
拉取本分支的遠程倉庫代碼
git checkout xxx
切換到xxx分支,切換分支之前,一定要確保當前分支是干凈的,即 git status 顯示是 干凈的。
git branch xxxx
在任一分支上創建一個新分支,新分支的倉庫與當前分支一致。
git checkout -b 新分支名稱 origin/遠程分支名稱
通常git clone 下來都是master分支,本地新建分支并和遠程分支建立聯系,可以使用這個命令。例如遠程有個 test 分支。 git checkout -b test origin/test? 這里本地創建了一個test分支,內容來源于遠程的test分支。并且已經建立了對應關系。提交的時候直接git push 就好了
git log
查看 git 提交歷史
git reflog
查看命令歷史,可根據打印出內容回到任意版本
git reset --hard xxx(commit ID)
回退到XXX版本
git checkout -- 文件名
丟棄工作區某文件的修改,恢復到未修改之前。
git reset HEAD <file>
丟棄暫存區某文件的修改,讓其回到工作區,然后再用 git checkout -- 文件名 恢復到沒修改之前。
代碼回滾 (reset revert)
簡單來說, reset 是回到某次提交,可前可后。不會產生新的記錄,只會在已經存在的記錄上實現,查看log記錄的話,不會看出來回滾操作,需要查看reflog。revert 可前可后,但是會產生新的記錄,整個過程是向前前進的,可以理解為把要回滾的分支復制一份內容出來,然后重新在當前的內容下修改。既然這樣,就可能會產生沖突。
沖突解決
協作開發時,共同修改了同一個地方,就會產生沖突。
1.與主干沖突,找到提交代碼的對應開發,兩人溝通以誰為主。
更加詳細,請移步??廖雪峰 git教程
回滾遠程分支
這是一波危險操作,請謹慎
[Git高級教程(二)] 遠程倉庫版本回退方法 - 梧桐那時雨 - CSDN博客
同一電腦上使用多賬號或gitlab 和 github。同時連接gitlab和github - 掘金
抽重要的講
一般公司電腦都會配置git都會配置 全局 例如?git config --global user.email "xxx@xxx.com" 這種,一般是gitlab,那么我們自己用github的時候,就要重新配置。
1.配置名稱,并生成 秘鑰。github需要加個名稱,避免覆蓋掉。例如 id_rsa_xxxx
ssh-keygen -t rsa -C "your.email@example.com"
2.生成了 id_rsa_xxxx 的秘鑰文件,復制秘鑰并添加到github賬號上。
3.添加 config 文件,編輯內容。
vim config
這里做個匹配,如果是 github,就使用id_rsa_xxxx 的秘鑰,不是就用 默認的全局賬號,即gitlab。
# github
Host github
? ? User git
? ? HostName github.com
? ? PreferredAuthentications publickey
? ? IdentityFile ~/.ssh/id_rsa_xxxx
4.克隆倉庫,進入到項目目錄,定義項目內git賬號
git config --local user.name 'aaa'
git config --local user.email 'aaa@qq.com'
5.然后正常提交到github就好。