1,http連線
2,ssh連線
現在在本地生成ssh-key,執行
ssh-keygen -t rsa -c 'your name'
生成id_rsa和id_rsa.pub
將id_rsa.pub內容新增到githost的管理平台的ssh keys
則可以ssh訪問
相對http連線,ssh連線比較安全
1、轉殖
git clone
或git clone [email protected]
2、建立分支
git branch branchname 建立分支
git checkout -b branchname 建立分支並切換至新分支
3、切換分支
git checkout branchname
強制切換分支
git checkout branchname --force
4、將本地當前分支推到遠端(建立遠端分支)
git push origin branchname
5、下拉遠端分支
git checkout -b branchname origin/branchname
由於gitv2將push.default預設為******,故而本地分支名和遠端分支名要一致
避免git push報錯
6、刪除本地分支
git branch -d branchname
強制刪除本地分支
git branch -d branchname
7、設定git使用者和郵箱
git config --global user.name '***'
git config --global user.email 'yyy'
8、設定遠端庫的url(比如從http連線改為git連線)
git remote set-url origin ***
9、本地分支關聯遠端分支(關聯後直接使用git pull和git push即可完成下拉和上傳)
git branch --set-upstream-to=origin/branchname
10、檢視本地配置
git config --local --list
11、檢視分支
git branch 檢視本地分支列表
git branch -r 檢視遠端分支列表
git branch -a 所有分支列表(本地和遠端)
12、從遠端獲取最新版本到本地,不做merge
git fetch (通常用於遠端增加了分支,git branch -r卻看不見的更新分支列表)
git fetch -p (刪除掉沒有與遠端分支對應的本地分支)
13、刪除遠端分支
git push origin --delete branchname
或git push origin :branchname
14、暫存
git stash 臨時儲存修改
git stash list 檢視臨時儲存檔案列表
git stash pop 釋放出之前臨時儲存的修改
使用場景:
在b分支開發,需要切到a分支處理問題,但b分支**未開發完,此時需要暫存b分支**
git stash
檢視暫存檔案列表
git stash list
切換到a分支處理問題
git checkout a
問題處理完切換到b分支繼續開發
git checkout b
釋放出之前的修改
git stash pop
15、版本回退
git reset --hard head 會退到最高版本(未提交時)
git reset --hard 版本號 回退至指定版本
17、檢視日誌
git log filename 檢視具體檔案提交記錄
git log -2 檢視分支最近的兩次提交記錄
git log -2 filename 檢視具體檔案最近兩次提交記錄
git log -p filename 檢視檔案具體的修改內容
git log -p -2 filename 檢視具體檔案最近兩次修改內容
18、追責
git blame filename 檢視檔案的每一行修改
19、合併
git merge a 將a分支合併至當前所在分支
git rebase a 將a分支合併至當前所在分支
merge會保留分支提交記錄
rebase不會保留分支提交記錄
如果有衝突
merge會繼續執行合併,並將所有的衝突展示出來
rebase遇到衝突會停下來,一次只會展示乙個衝突,
手動修改衝突後,執行提交操作
個人偏好使用merge
20、忽略
有些重要檔案或者日誌檔案等不想上傳,可以編輯.gitignore
例如忽略.idea檔案下所有的檔案
在.gitignore中新增
.idea/*
如果該檔案已經push,例如config.php,則依次執行
git rm --cached config.php//從版本庫中刪除,在工作目錄中保留
在.gitignore新增
config.php
git commit
git push
上述操作完成後,其他開發通過pull,也會忽略config.php
如果需要忽略的資料夾
git rm -r --cached directory
如果只想自己這裡把config.php的改動不上傳(其他人依舊可以修改上傳)
git update-index --assume-unchanged config.php
這個檔案修改後,git status不會有變化
21,cherry-pick
場景:a分支提交了多個版本,b分支並不需要a分支最新的**,而是a分支多次提交的某乙個版本
此時,在a分支找到需要使用的版本的hash值,在b分支執行
git cherry-pick a分支需要使用的版本hash
如果遇到衝突,可手動處理衝突
22,reset
場景:git add . & git commit 之後,沒有git push,想撤銷本地的commit
git log 找到上一次的commit id--->last_commit_id
僅撤銷本地commit 保留修改內容
git reset last_commit_id
撤銷本地commit 且刪除修改內容
git reste --hard last_commit_id
1、轉殖到本地
git clone 遠端位址
2、設定全域性使用者及郵箱
git config --global user.name '***'
git config --global user.email 'yyy'
3、下拉分支**
git checkout -b localnranchname origin/remotebranchname
4、設定本地當前分支與遠端分支關聯
git branch --set-upstream-to=origin/remotebranchname
1、git add .
儲存本地修改
2,git commit -m '***x'
提交到本地並記錄
3,git pull
下拉遠端修改
4,git push
git日常命令
文總結了日常開發中git的常用命令,會逐步更新。1 回退到上乙個commit的版本 引用git reset hard head 1 head is now at 907af0c x some comments 這個命令很危險,他會徹底刪除最近一次提交的 不可恢復。而且在執行這個命令時,如果工作區還有...
git使用日常
1.關於git手動刪除檔案如何處理 執行命令 git add a 或者git add all 進行全文新增,然後commit 2.關於git首次使用新增使用者命令 git config global user.name yangchuan git config global user.email y...
git日常問題
在2016年的時候,我建立了自己的github,當時只是跟風,覺得大家都在使用github,自己也要有乙個,其次就是想有乙個自己的部落格,閨蜜之前自己搭載了乙個gitpage hexo的部落格,容易上手,就想學一下,沒想到過程坎坷 到現在也不是很怎麼會使用github,但是已經稍有了解了 之前我使用...