git入門日常

2021-07-31 22:45:50 字數 3794 閱讀 7539

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訪問

[email protected]

相對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,但是已經稍有了解了 之前我使用...