Git操作使用

一 對與Git的介紹 講解這里不再贅述只梳理 操作與使用

1. 找個文件夾 cd 到你文件夾目錄。 查看文件夾路徑是否是自己要操作的倉庫 pwd

2. git clone +git地址 代碼會被拉下來 ?之后的操作,如果直接拉取分支的代碼如下

?git clone -b +branchname +git地址

檢查自己的分支:?git?branch ?一般都在在master下面 ?

這個時候查看一下所有分支:?git?branch -a

需要切換分支的話 git checkout +分支

OK到這里基本上準備工作已經(jīng)搞完了

3.從遠程庫獲取到本地:git pull ? ?前提是進入你文件倉庫目錄下?git pull origin branchname?

拉取分支代碼并合并(該命令簡單粗暴)

4.將本地提交遠程庫:git push origin master

5.獲取本地文件狀態(tài): git status?查看工作區(qū)代碼相對于暫存區(qū)的差別

6 ?把修改后的文件 添加進去?git add 文件名 (從工作區(qū)添加到暫存區(qū)) ? ? ?刪除的命令:git rm 文件名 ( git add -A .?-A 表示將所有的已跟蹤的文件的修改與刪除和新增的未跟蹤的文件都添加到暫存區(qū)。git add .?不包括刪除 ? ?git add -u .?不包括新增加的文件

7 提交 git commit -m ?+' 提交說明 ' 之后 (將緩存區(qū)內(nèi)容添加到本地倉庫) 推送到服務(wù)器 git push

8 基本的常規(guī)操作也就這些 平時開發(fā)項目也夠用 (沒沖突情況下)

9?git show --stat +commitid 查看提交的文件列表

二 分支相關(guān)

創(chuàng)建

git branch -a(查看所有分支包括本地分支和遠程分支).

git branch -r(查看遠程分支).

git checkout -b branchname(直接新建一個分支然后切換至新創(chuàng)建的分支).就是創(chuàng)建加切換分支.

git checkout branchname(是切換分支名).

刪除. 先切換到別的分支才可以

git branch -d branchname??刪除本地分支

git push origin: branchname ?刪除遠程分支 記得加 :這個符號

問題解決

1、改完bug忘記切換分支了,代碼改了很多怎么辦。

莫慌,git如果這種問題都解決不了何談高效。

使用以下命令即可解決。

git add .? ? ? (把所有改動暫存)

git stash? ? ?(把暫存的文件提交到git的暫存棧)

git checkout 本該提交代碼的分支?

git stash pop (將暫存棧中的代碼放出來)

至于是繼續(xù)改還是提交就隨你了

2.代碼不但改了,還push提交了怎么辦。

最常見的是這種問題,這種場景也能解決

git reset HEAD~1? (最近一次提交放回暫存區(qū), 并取消此次提交)

git stash? ? ? ? ? ? ? ? ? ?(把暫存的文件提交到git的暫存棧)

git checkout 該提交代碼的分支

git stash pop

git add . ?再 ? git commit -m ?' ?'

git pull ?拉下代碼 ?再 git push origin?branchname

但是呢 該提交的分支是提交好了, 但是那個錯的分支依舊有提交的內(nèi)容 這個時候要再切換回去再提交一次如下:

git checkout?branchname 此時是 不該提交的那個分支

git log 看下 因為reset的緣故 本地的提交已經(jīng)不見了,但遠端是存在的

git push origin branchname -f? (把不該上去的文件回退掉)

3在A分支下對代碼做了修改,執(zhí)行add + commit操作后,切換到B分支下,代碼丟失

git checkout A 先切換到A

git log 查看提交的 commitID 復(fù)制記錄下來

git checkout B 再切換到B

git ?cherry-pick?commitID ?接下來的push

但是A分支下有你提交的內(nèi)容需要撤銷A分支 執(zhí)行 git reset --hard commit_id

OK了

4代碼都提交了但有些文件不想push怎么處理

1 這時候需要撤銷 ?git reset id. 這個操作只是撤銷,代碼不會變。 把要提交的東西重新提交一下

2 代碼回滾?git reset --hard id ?一切都恢復(fù)到你回滾到的狀態(tài) 自己寫的代碼會被覆蓋 若想保留這個操作不想解釋了??瓷厦?。

三標(biāo)記 tag

git tag?列顯已有的標(biāo)簽

git tag -l 'v1.4.2.*'?特定的搜索模式??1.4.2 系列

創(chuàng)建一個含附注類型的標(biāo)簽 用 -a (譯注:取 annotated 的首字母)指定標(biāo)簽名字即可? git tag -a v1.4 -m 'my version 1.4'

對于已提交的內(nèi)容補上標(biāo)簽 git tag -a v1.2 9fceb02 ? ? ? ??git tag -a +版本號+ commitID

刪除 本地 git tag -d v1.0 ?刪除遠程?git push origin :refs/tags/v1.0

此外tag 相當(dāng)于是一個快照,是不能更改它的代碼的,如果要在 tag 代碼的基礎(chǔ)上做修改,你需要一個分支?git checkout -b branch_name tag_name?

四 沖突情況操作 這是難免的?

Git工作得小心注意,特別是涉及到一些高級操作,例如?reset,?rebase?和?merge

1當(dāng)前版本的歷史版本:git log ? ?簡版顯示:git log --pretty=oneline

2 歷史版本命令:git reflog ?

3?對比工作區(qū)和倉庫區(qū)中某版本某文件的不同? git diff HEAD?-- 文件名

4?回退歷史版本到暫存區(qū)

?git reset HEAD^或版本號 回退到上一個版本

例子 git reset --hard HEAD~100?

git reset --hard 版本號 想回退到的版本

5 git?reset?--hard?FETCH_HEAD 將本地的沖突文件沖掉,不僅需要reset到MERGE-HEAD或者HEAD,還需要—hard。沒有后面的hard,不會沖掉本地工作區(qū)。只會沖掉stage區(qū)。小心使用這個命令

git checkout -- file 命令恢復(fù)狀態(tài)?必須要先add才存在恢復(fù)一說

文件丟失了 然后push到服務(wù)器 導(dǎo)致一些文件沒有了 這個時候不要著急?

1. git?reflog 先看歷史記錄 重制回到那一次的提交狀態(tài)?git?reset?--hard?+版本號。文件即可找回

除非你的操作已經(jīng)被git當(dāng)做垃圾處理掉了,一般是30天以后

2. 碰到?error: Your local changes to the following files would be overwritten by merge:

??????? /。。/。。/

Please, commit your changes or stash them before you can merge. 文件內(nèi)部沖突 (代碼沖突

解決方式1:希望保留生產(chǎn)服務(wù)器上所做的改動,僅僅并入新配置項, 處理方法如下:

git stash

git pull

git stash pop ? ?然后可以使用git diff -w +文件名 來確認代碼自動合并的情況. 打開文件查看

<<<<自己的代碼 ?========= 服務(wù)器代碼(別人)>>>>>> 刪除整合 重新提交即可

解決方式2:?反過來,如果希望用代碼庫中的文件完全覆蓋本地工作版本. 方法如下:

git reset --hard?

git pull

有時候 會經(jīng)常的碰到 Xcode 的配置文件 沖突 .Dstore .... 等等 這個時候就需要 忽略文件 把一些不必要的 需要忽略的文件 添加到 .gitignore

怎么創(chuàng)建?.gitignore 文件 文件里面的內(nèi)容又該如何配置

1. touch .gitignore 就會生成 ?這時候查看一下 他是隱藏文件 如果看不到 嘗試一下 coomand +shift +. 就會顯示出來

2. open?.gitignore

那么里面的內(nèi)容又該如何書寫:個人工程配置如下:加cocopods 的忽略

這個文件 最好配置到服務(wù)端 也就是代碼庫 ?避免他人內(nèi)部有這個.gitignore 導(dǎo)致沖突?

其他的問題 待總結(jié)持續(xù)更新?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Git常用語法 [TOC] Git簡介 描述 ? Git(讀音為/g?t/。)是一個開源的分布式版本控制系統(tǒng),...
    君惜丶閱讀 3,941評論 0 13
  • git常用命令 GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章閱讀 8,871評論 1 26
  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,852評論 9 163
  • 聲明:這篇文章來源于廖雪峰老師的官方網(wǎng)站,我僅僅是作為學(xué)習(xí)之用 Git簡介 Git是什么? Git是目前世界上最先...
    橫渡閱讀 4,139評論 3 27
  • “劇情的需要”(61) 一天上午,看了慈善小品“孝道”的現(xiàn)場排練,扮演老奶奶的伙伴真情流露,幾個公益演員都全心付出...
    周安柱閱讀 312評論 0 0

友情鏈接更多精彩內(nèi)容