git 基本操作命令,衝突解決
git 安裝
Git和SVN一樣,都需要建立一個伺服器的,他們都可以建立自己的版本管理伺服器。對於個人和小團隊來說,使用託管伺服器可能更合適。
常見的有Github 和 Bitbucket。Github沒有個人免費倉庫使用,程式碼放上去就是開源的。Bitbucket的個人倉庫相關頁面已經基本漢化了。註冊流程也比較簡單。
MAC上最好的GIT免費GUI工具是SourceTree(沒有之一)。此外,最好的GIT程式碼開源網站是GitHub,最好的GIT程式碼私有庫是BitBucket。
安裝過程:
1,下載Git installer,地址;http://git-scm.com/downloads
2,下載之後開啟,雙擊.pkg安裝
3, 開啟終端,使用git –version或者which git命令檢視安裝版本,有就是安裝成功了
4,建立一個全球使用者名稱、全球郵箱,設定全域性配置
git config –global user.name “使用者名稱”
git config –global user.email “對應郵箱”
5、進入你的專案目錄
轉載於 http://www.jianshu.com/p/e9dd2849cfb0
cd d:/wamp/www/wap //首先指定到你的專案目錄下
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/youtname/vscode.git
//用你倉庫的url,vscode.git中vscode為倉庫名稱,使用時必須先建立
git push -u origin master //提交到你的倉庫
一、Add & Commit
1、add
git init
初始化一個 Git 倉庫(repository),即把當前所在目錄變成 Git 可以管理的倉庫。
git add 檔案
把檔案新增到 暫存區(stage),可被 track 追蹤紀錄下來。可多次使用來新增多個檔案
git add *
新增所有修改到暫存區
git add .
暫存新增加的和修改的檔案,不包括已刪除的檔案。即當前目錄下所有檔案。
git add -u
暫存修改的和刪除的檔案,不包括新增加的檔案
git add -i
互動式新增檔案到暫存區
git add -p
暫存檔案的一部分
2、commit
git commit -m "本次提交說明"
一次性把暫存區所有檔案修改提交到倉庫的當前分支。注意:提交資訊可為中文也可為英文,若為英文則通常用一般現在時。如果不加引數 -m 則會跳轉到編輯器強制填寫提交說明資訊。
git commit -am "本次提交說明"
Git 就會自動把所有已經跟蹤過的檔案暫存起來一併提交,從而跳過 git add 步驟,引數 -am 也可寫成 -a -m。“在 oh-my-zsh 下,直接用 gcam “message” 就搞定了”
. git commit --amend
重新提交,最終只會有一個提交,第二次提交將代替第一次提交的結果。尤其適用於提交完了才發現漏掉了幾個檔案沒有新增,或者提交資訊寫錯了的情況。
git commit --amend --reset-author
在上一次 commit 之後想重新更新一下時間。amend 實際上修改了上一個 commit。所以如果已經 push 了上一個 commit,請儘量不要 amend。如果一定要 amend 已經 push 了的 commit,請確保這個 commit 所在的 branch 只有你一個人使用(否則會給其他人帶來災難),然後在 amend 之後使用 git push –force。只要多加小心,該命令貌似沒什麼卵用。
git commit -p
commit 檔案的一部分,適合工作量比較大的情況。之後,Git 會對每塊修改彈出一個提示,詢問你是否 stage,按 y/n 來選擇是否 commit 這塊修改,? 可以檢視其他操作的說明。
二、Diff & Status
1、Status
git status
顯示當前倉庫的最新狀態:
- 工作區就是“乾淨的”,即沒有新的修改
- 最上面顯示的是在 staging area,有未提交檔案時,未被被 commit 的檔案;
- 中間顯示沒有 stage 的修改了的檔案,最下面是新的還沒有被 Git track 的檔案(add)
git status -s 或 git status --short
狀態簡覽。輸入此命令後,有如下幾種情況
- 檔案前面有 ?? 標記 新新增的未跟蹤(add)
- 第一個左邊的 M 表示該檔案被修改了並放入了暫存區。
- 兩個MM 該檔案被修改了但是還沒放入暫存區
2、Diff
git diff
檢視工作區中的修改。
git diff --staged 或 git diff --cached
檢視暫存區中的修改。
git diff <commit id1> <commit id2>
比較兩次 commit 之間的差異。
git diff <branch1> <branch2>
在兩個 branch 之間比較。
git diff 檔案
檢視指定檔案具體修改了哪些內容。
git show
檢視最後一個 commit 的修改。
git show HEAD~3
檢視倒數第四個 commit 的修改,HEAD~3 就是向前數三個的 commit,即倒數第四個 commit
git show deadbeef
檢視 hash 為 deadbeef 的 commit 的修改。
git blame 檔案
檢視誰什麼時間改了哪些檔案。
三、建立與合併分支
git checkout -b dev
建立dev分支,然後切換到dev分支
git branch
檢視當前分支,會列出所有分支,當前分支前面會標一個*號。
git checkout dev
切換回dev分支
git merge dev
合併指定分支到當前分支
git branch -d dev
刪除dev分支
三、解決衝突
1、使用git pull檔案時和本地檔案衝突
場景:在使用git pull程式碼時,經常會碰到有衝突的情況
簡要:主要是使用git stash命令分成以下幾個步驟進行處理
git stash
先將本地修改儲存起來
git stash list
可以看到儲存的資訊, [email protected]{0}就是剛才儲存的標記
git pull
獲取內容
git stash pop [email protected]{0}
還原暫存的內容
系統提示如下類似的資訊,系統自動合併修改的內容,但是其中有衝突,需要解決其中的衝突
Auto-merging c/environ.c
CONFLICT (content): Merge conflict in c/environ.c解決檔案中衝突的的部分
<<<<<<< Updated upstream 和=====之間的內容就是pull下來的內容,
====和stashed changes之間的內容就是本地修改的內容。自行確定需要的內容。解決完成之後,就可以正常的提交了。
2、分支合併產生衝突
分支的快速合併命令:
git merge feature1
- 新的feature1分支,繼續我們的新分支開發 修改readme.txt最後一行,改為:
Creating a new branch is quick AND simple.
在feature1分支上提交:
$ git add readme.txt
$ git commit -m "AND simple"
[feature1 75a857c] AND simple
1 file changed, 1 insertion(+), 1 deletion(-)
- 切換到master分支:
$ git checkout master
Switched to branch 'master'
Your branch is ahead of 'origin/master' by 1 commit.
Git還會自動提示我們當前master分支比遠端的master分支要超前1個提交
在master分支上把readme.txt檔案的最後一行改為:
Creating a new branch is quick & simple.
在master 分支上提交
$ git add readme.txt
$ git commit -m "& simple"
[master 400b400] & simple
1 file changed, 1 insertion(+), 1 deletion(-)
master分支和feature1分支各自都分別有新的提交,
這種情況下,Git無法執行“快速合併”,只能試圖把各自的修改合併起來,但這種合併就可能會有衝突
$ git merge feature1
Auto-merging readme.txt
CONFLICT (content): Merge conflict in readme.txt
Automatic merge failed; fix conflicts and then commit the result.
必須手動解決衝突後再提交。git status也可以告訴我們衝突的檔案
$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 2 commits.
#
# Unmerged paths:
# (use "git add/rm <file>..." as appropriate to mark resolution)
#
# both modified: readme.txt
#
no changes added to commit (use "git add" and/or "git commit -a")
直接檢視readme.txt的內容
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.
<<<<<<< HEAD
Creating a new branch is quick & simple.
=======
Creating a new branch is quick AND simple.
>>>>>>> feature1
Git用<<<<<<<,=======,>>>>>>>標記出不同分支的內容,我們修改如下後儲存:
Creating a new branch is quick and simple.
再次提交
$ git add readme.txt
$ git commit -m "conflict fixed"
[master 59bc1cb] conflict fixed
通過 git log 檢視到分支的合併情況,
$ git log --graph --pretty=oneline --abbrev-commit
* 59bc1cb conflict fixed
|\
| * 75a857c AND simple
* | 400b400 & simple
|/
* fec145a branch test
...
最後刪除feature1分支
$ git branch -d feature1
Deleted branch feature1 (was 75a857c).
四、推送到遠端倉庫
1、Remote
git remote
檢視已經配置的遠端倉庫伺服器
git ls-remote
獲得遠端引用的完整列表
git remote add <shortname> <url>
新增並關聯一個遠端庫 shortname 一般是 origin,也可以是其他字串,用來代替整個 url。
git remote rename old_name new_name
重新命名一個遠端倉庫的簡寫名。
git remote rm <remote-name>
移除一個遠端倉庫。
2、push
git push -u origin master
關聯後,使用該命令第一次推送 master 分支的所有內容,後續再推送的時候就可以省略後面三個引數了,其中引數 u 代表上游(upstream)的意思。
git push origin 遠端分支(通常是 master)
推送時也有可能發生衝突,在他人推送之後是不能立即推送自己的修改的,可能會覆蓋他人的工作,所以必須先拉取(pull)別人的修改合併(merge)之後才能推送
git push <remote-name> <commit SHA>:<remote-branch_name>
push 一部分 commit。例如:git push origin 9790eff:master 即為 push 9790eff 之前的所有 commit 到 master
相關推薦
git 基本操作命令,衝突解決
git 安裝 Git和SVN一樣,都需要建立一個伺服器的,他們都可以建立自己的版本管理伺服器。對於個人和小團隊來說,使用託管伺服器可能更合適。 常見的有Github 和 Bitbucket。Github沒有個人免費倉庫使用,程式碼放上去就是開源的
git基本操作命令 【git】git的基本命令
【git】git的基本命令 001、初始化倉庫,建立git倉庫 git init 002、配置個人資訊 git config --global user.name <名字&
Git基本操作、分支管理、衝突解決
基本操作 git init 建立一個 Git 倉庫 git clone [url] 拷貝一個 Git 倉庫到本地 git add [file_name] git add 命令可將該檔案新增到快取 git commit -m "備註資訊" 使用 git add 命令將想要快照的內容寫入快取區,
git入門學習一(git安裝,增刪改查基本操作命令)
git 工作區 暫存區 版本庫 在當前目錄新建一個Git程式碼庫 git init (會多出.git資料夾) 設計提交程式碼時的使用者資訊 :git config --global user.name zhangsan git config --glob
git操作之衝突解決
應用場景,任哥,我兩個人共同修改了git專案上的一個檔案。zsh命令列模式 準備工作 簡寫命令解釋 gl=git pullgp=git pushgst=git statusgcmsg=git commit -m 操作演示檔案 test_git.py 切換到分級developer git checkou
Git --- 基本操作以及Git 特殊命令,公司常用命令
Git安裝方式: window安裝方式。 在 Windows 平臺上安裝 Git 同樣輕鬆,有個叫做 msysGit 的專案提供了安裝包,可以到 GitHub 的頁面上下載 exe 安裝檔案並執行: 安裝包下載地址:http://msysgit.github.io/ 完成安裝之後,就可以使用命令列的
Git基本操作、分支管理、沖突解決
保留 merge -h out 暫存區 diff 使用 希望 分支 基本操作 git init 創建一個 Git 倉庫 git clone [url] 拷貝一個 Git 倉庫到本地 git add [file_name] git add 命令可將該文件添加到緩存 git c
GIT的基本操作命令與使用流程
一、Git的基本介紹 git是目前世界上最先進的分散式版本控制系統。git是 LinusTorvalds 為了幫助管理Linux 核心開發而開發的一個開放原始碼的
android git .gitignore 忽略檔案基本配置 經常衝突解決
本文介紹android開發在使用git多人開發時出現各種更新衝突、無法執行、雖然添加了忽略但仍然衝突等問題 1.首先刪除其他所有的.gitignore檔案,只留下根目錄的(你只需要一個) 2.配置如下 *.iml *.bat *.apk # app用到zip的請忽略 *.zip # 自定
Git版本管理之旅(二)—— Git基本操作流程及相關命令
本章繼續上章的型別,介紹基於空專案的版本庫操作,本教程基於Ubuntu 建立版本庫 新增檔案 修改檔案 刪除檔案 版本回退 基本概念 管理以及撤銷修改 新增到遠端倉庫 從遠端倉庫克隆 建立版本庫 版本庫又名倉庫,英文名repository,可以
git基本常用命令操作
轉載:http://blog.jobbole.com/78960/ Git基本常用命令如下: mkdir: XX (建立一個空目錄 XX指目錄名) pwd: 顯示當前目錄的路徑。 ----注意這裡前面不用輸入git ,直接
Linux基本操作命令
程序 詳細 位置 tool -1 擁有 Owner ss命令 單位 一、 ls ls最常用的參數有三個: -a -l -F 1、ls -a Linux上的文件以.開頭的文件被系統視為隱藏文件,僅用ls命令是看不到他們的,而用ls -a除了顯示 一般文件名外,連隱藏文
HADOOP基本操作命令
itl mapred lang reduce 磁盤 family home file cas Hadoop基本操作命令 在這篇文章中,我們默認認為Hadoop環境已經由運維人員配置好直接可以使用。假設Hadoop的安裝目錄HADOOP_HOME為/home/admin/ha
Linux的基本操作命令
linux cat inux 輸入 指定 修改 回車 txt文件 登錄密碼 mount 查看掛載目錄 cat ~ 查看文件下的內容 touch ~ 創建一個文件 echo 1234>>123.txt 創建一個內容為1234的123txt文件
2017-7-18-每日博客-關於Linux基本命令CnetOS7系統基本操作命令.doc
空間使用 正在 run 個數 linux oot disable 輸出 column 1.root/下 cat anaconda-ks.cfg 確定是否裝base軟件組 yum groupinstall base 安裝base組ifconfig 命令就可以使用了或者
git 常用操作命令
進行 歷史 指定 demo 新的 地址 克隆 保存 txt文件 記錄下工作中,常用的Git命令操作,一個項目經常是多人協作開發,使用好git是開發人員必備的技能,下面記錄下一些基本的git操作,後續會記錄git解決沖突,合並分支,回滾,tag操作等。 克隆項目 - git
DOS當中的基本操作命令,如何切換磁盤,如何查看文件和文件夾,如何清屏,進入文件夾的命令,javac是什麽意思,作用是什麽?DOS如何建文件夾?退出文件夾?
ava mpi dos compile 通配符 pil jdk 使用 onf 如何切換磁盤:使用盤符+:舉例 d: 如何查看文件和文件夾 dir/w 如何清屏: cls (clear screen) 進入文件夾的命令cd ,舉例cd JDK javac是什麽意思,c 是co
Git基礎入門(四)Git基本操作2
git 操作 基礎忽略文件: 在實際開發過程中總有些文件無需納入Git的管理,比如日誌文件、臨時文件等 在這種情況下,我們可以在工作目錄中創建一個名為.gitignore的文件,列出要忽略的文件名或者表達式 例:cat .gitignore *.[oa]
筆記:git基本操作
基本概念 位置 bar 回退 let 管理 文件夾 私有 推送 原文: http://www.cnblogs.com/pingwen/p/8098035.html 1. 快速入門的基本概念 相比SVN,TFS等集中式的版本管理系統,GIT分布式管理最重要的理
Git 基本操作
gitGit 基本操作Git 的工作就是創建和保存你項目的快照及與之後的快照進行對比。本章將對有關創建與提交你的項目快照的命令作介紹。獲取與創建項目命令git init用 git init 在目錄中創建新的 Git 倉庫。 你可以在任何時候、任何目錄中這麽做,完全是本地化的。在目錄中執行 git init,就