git 命令整理。

2021-09-24 16:44:09 字數 2782 閱讀 6786

初始化乙個git倉庫:git init

新增檔案到git倉庫,分兩步:

git add 可反覆多次使用,新增多個檔案;

git commit -m 完成。

git status  掌握工作區的狀態

git diff   檢視修改內容。

head指向的版本就是當前版本

git reset --hard commit_id 回退版本

git log    檢視提交歷史,以便確定要回退到哪個版本。

git reflog     檢視命令歷史,以便確定要回到未來的哪個版本。

git checkout -- readme.txt       readme.txt檔案在工作區的修改全部撤銷,這裡有兩種情況:

一種是readme.txt自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;

一種是readme.txt已經新增到暫存區後,又作了修改,現在,撤銷修改就回到新增到暫存區後的狀態。

總之,就是讓這個檔案回到最近一次git commit或git add時的狀態。

git add 把修改推到暫存區,未git commit 用命令   git reset head 可以把暫存區的修改撤銷掉(unstage),重新放回工作區 

git reset命令既可以回退版本,也可以把暫存區的修改回退到工作區。當我們用head時,表示最新的版本。

再用git checkout -- readme.txt把readme.txt檔案在工作區的修改全部撤銷

命令git rm用於刪除乙個檔案。

要關聯乙個遠端庫,使用命令git remote add origin git@server-name:path/repo-name.git

關聯後,使用命令git push -u origin master   第一次推送master分支的所有內容;

此後,每次本地提交後,只要有必要,就可以使用命令   git push origin master推送最新修改

檢視分支:git branch

建立分支:git branch

切換分支:git checkout

建立+切換分支:git checkout -b

合併某分支到當前分支:git merge

刪除分支:git branch -d

切換新分支dev修改提交後切換為master分支再暗修改提交,這是合併分支會有衝突,解決衝突後提交,再刪除dev分支

用git log --graph命令可以看到分支合併圖。

git merge --no-ff -m "提交描述" 分支名    表示合併並禁用fast forward,同時建立乙個新的commit 

當手頭工作沒有完成時,先把工作現場git stash一下,然後去修復bug,修復後,再git stash pop,回到工作現場。

開發乙個新feature,最好新建乙個分支;

如果要丟棄乙個沒有被合併過的分支,可以通過git branch -d 強行刪除。

建立遠端origin的dev分支到本地

git checkout -b dev origin/dev

檢視遠端庫資訊,使用git remote -v;

本地新建的分支如果不推送到遠端,對其他人就是不可見的;

從本地推送分支,使用git push origin branch-name,如果推送失敗,先用git pull抓取遠端的新提交;

在本地建立和遠端分支對應的分支,使用git checkout -b branch-name origin/branch-name,本地和遠端分支的名稱最好一致;

建立本地分支和遠端分支的關聯,使用git branch --set-upstream branch-name origin/branch-name;

從遠端抓取分支,使用git pull,如果有衝突,要先處理衝突。

git rebase   可以把本地未push的分叉提交歷史整理成直線

命令git tag 用於新建乙個標籤,預設為head,也可以指定乙個commit id;

命令git tag -a -m "blablabla..."可以指定標籤資訊;

命令git tag可以檢視所有標籤。

標籤不是按時間順序列出,而是按字母排序的。

git show 檢視標籤資訊.

注意:標籤總是和某個commit掛鉤。如果這個commit既出現在master分支,又出現在dev分支,那麼在這兩個分支上都可以看到這個標籤。

命令git push origin 可以推送乙個本地標籤;

命令git push origin --tags可以推送全部未推送過的本地標籤;

命令git tag -d 可以刪除乙個本地標籤;

命令git push origin :refs/tags/可以刪除乙個遠端標籤。

在github上,可以任意fork開源倉庫;

自己擁有fork後的倉庫的讀寫許可權;

可以推送pull request給官方倉庫來貢獻**。

可以刪除已有的github遠端庫:

git remote rm origin

再關聯碼雲的遠端庫(注意路徑中需要填寫正確的使用者名稱):

git remote add origin [email protected]:liaoxuefeng/learngit.git

忽略某些檔案時,需要編寫.gitignore;

.gitignore檔案本身要放到版本庫里,並且可以對.gitignore做版本管理!

git config --global alias.newname oldname

配置git的時候,加上--global是針對當前使用者起作用的,如果不加,那只針對當前的倉庫起作用

git命令整理

git svn區別 svn是集中式版本控制系統,版本庫是集中放在 伺服器的,而幹活的時候,用的都是自己的電腦,所以首先要從 伺服器 得到最新的版本,然後幹活,幹完後,需要把自己做完的活推送到 伺服器。集中式版本控制系統是必須聯網才能工作,如果在區域網還可以,頻寬夠大,速度夠快 git是分布式版本控制...

Git命令整理

回退上一版本 git reset hard head head is now at ea34578 add distributed 檢視分支 git branch 建立分支 git branch 切換分支 git checkout 建立 切換分支 git checkout b 合併某分支到當前分支 ...

git命令整理

git init 建立本地倉庫 git status 檢視狀態 git add 將檔案提交到暫存區 或者也可以 git add 檔案名字 git commit m aaa 將暫存區的檔案提交到倉庫 引號裡面的東西隨便寫他只是方便記憶的 git log 檢視歷史記錄 git reflog 檢視操作命令...