前言
自動幫助記錄每次文件的改動,同時協作永工作
學習git命令是充分必要的
集中式和分布式
分布式每個人電腦都是一個完整的版本庫,也有類似中央服務器的電腦,但是這個服務器只是用來交互打架的修改沒有它大家也一樣干活,只是交互修改不方便而已
安裝只要安裝了xcode就可以了
倉庫:里面文件修改,刪除,添加都能被git追蹤,認識時刻都能追蹤歷史或者將來某哥時刻還原只能追蹤文本文件的改動
創建目錄和查看路徑
mkdir 創建目錄
cd 進入到目錄里面
pwd 用于顯示當前的目錄
cat 查看文件內容
Git命令使用說明
初始化一個目錄成git的倉庫(版本庫)包括暫存區和master分支
git init查看當前目錄的文件包括隱藏文件
ls -ah獲取git命令的手冊頁
git help使用git前需要進行一些全局的配置
> 1、用戶目錄下的配置,當前登陸用戶所有的倉庫調用這個配置 ~/.gitconfig
> 2、項目目錄的配置,優先級高,覆蓋全局配置配置用戶名和郵箱
git config --global user.name "wirelessqa"git config --global user.email wirelessqa.me@gmail.comgit config --global color.ui true 讓Git顯示顏色,會讓命令輸出看起來更醒目
.gitignore 配置 不納入git管理 主要是系統文件,編譯文件,自定義的文件 ,這個文件也用推送到遠程庫
https://github.com/github/gitignore ,創建 touch 命令
配置編輯器 git在需要輸入一些消息
git config --global core.editor emacs
配置比較工具
git config --global merge.tool vimdiff
讀取配置(同一個配置選項會出現多次,以最后一次為準)
git config --list
提交文件之前
先查看當前的狀態 ,能提示你接下來怎么做的命令,比如修改工作區文件內容,提示你添加到暫存區或者丟棄工作區修改的命令
git status
查看文件到底修改了什么
git diff
提交修改
納入git倉庫管理,把修改添加到暫存區(使用.代表將所有的修改進行添加)
git add .
把暫存區里面的所有修改提交到當前分支同時創建一個快照
git commit -m ""
如果確認當前所有變更都是同一個commit,可以直接加-a,就不必一個一個add了
git commit -a -m ""
工作區和版本庫里最新版本的區別
git diff HEAD -- readme.txt
查看提交歷史
git log --pretty=oneline
撤銷修改
git checkout -- readme.txt
> 1、修改后還沒添加到暫存區 ,撤銷修改回到最近一次commit的狀態,也就是和版本庫里面的狀態一樣
> 2、修改后被添加到暫存區了,又做了修改 ,撤銷修改就回到添加到暫存區后的狀態,也就是跟暫存區里面的狀態保持一致
> 3、用版本庫里的版本替換工作去的版本,無論工作區是修改還是刪除
可以把暫存區的修改撤銷掉
git reset HEAD file
提交文件刪除修改到暫存區
git rm test.txt
版本回退
git的版本回退知識改了head 指針,順便把工作區的文件更新掉了
git reset --hard HEAD^或git reset --hard 3628164
查看命令歷史
可以看到reset和commit等命令歷史,可以利用這個命令查看最近一次
commitidgit reflog
工作區和暫存區
工作區:電腦上能看到的目錄 ,里面有個.git 隱藏目錄這個不算工作區,是git的版本庫版本庫里面包含了暫存區stage和git為我們自動創建第一個分支
遠程庫管理
查看遠程庫信息
git remote -v
修改遠程倉庫地址(在已經add了遠程倉庫地址,使用它進行修改地址)
git remote set-url origin https://github.com/USERNAME/OTHERREPOSITORY.git
關聯遠程庫(添加遠程倉庫地址)
git remote add origin git@github.com:linhbcode/first-test.git
本地的master分支推送到遠程的master分支上,原則就是master分支要與遠程同步 ,dev 分支開發分支,也需要遠程同步
git push origin master
master分支推送到遠程的master分支,本地master 分支和遠程master分支建立關聯
git push -u origin master
Git自動把本地的master分支和遠程的master分支對應起來了,并且,遠程倉庫的默認名稱是
origingit clone git@github.com:linhbcode/first-test.git
git pull 如果提示沖突解決沖突 抓去信息碰到沒有鏈接的 有兩種方式解決
> 1、git branch --set-upstream branch-name origin/branch-name 建立本地分支和遠程分支的關聯
> 2、git pull origin branchname
分支管理
1、不完整的代碼在其它分支上提交
2、每個提交都在一個時間線上的節點上,分支相當于指向一個節點的指針
head 本質上是指向分支的指針
創建并切換分支
git checkout -b dev
本地分支創建和遠程分支相同的分支,主要是倉庫從遠程clone過來的(一般要先git fetch,再git checkout -b branch-name origin/branch-name)
git checkout -b branch-name origin/branch-name
創建分支
git branch dev
切換分支 , 如果當前的工作只完成一半,還沒發提交的話
git checkout dev
可以用 git stash 保存工作現場 ,在用它之前可以 git stash list 查看有幾個暫存的列表
查看有幾個暫存的列表
git stash list
保存工作現場
git stash
恢復 工作現場
git stash apply
來刪除 工作現場
git stash drop
查看當前分支
git branch
查看遠程分支
git branch -r
合并分支
git merge dev
刪除分支
git branch -d dev
強行刪除分支
git branch -D dev
(刪除遠程分支)冒號前面的空格不能少,原理是把一個空分支push到server上,相當于刪除該分支。
git push origin :branch-name
提交本地test分支作為遠程的master分支
git push origin test:master
提交本地test分支作為遠程的test分支
git push origin test:test
剛提交到遠程的test將被刪除,但是本地還會保存的,不用擔心
git push origin :test
查看分支合并圖
git log --graph
查看提交歷史
git log --pretty=oneline --abbrev-commit
合并分支
git merge branchname
合并分支的時候不采用ff模式(分支刪除了還能看的到分支歷史信息)
git merge --no-ff -m "merged bug fix 101" issue-101
標簽管理
描述開發歷程,在發布一個版本的時候打一個標簽
查看所有的標簽
git tag
對莫一個提交歷史打一個標簽
git tag v1.0 [commit id]
查看標簽信息
git show [tagname]
正式開發下最好用這條語句標注下這個標簽的描述
git tag -a v0.1 -m "version 0.1 released" 3628164
刪除標簽
git tag -d v0.1
推送標簽
git push origin v1.0
推送全部標簽
git push origin --tags
遠程刪除標簽(先從本地刪除標簽)
git push origin :refs/tags/v0.9
結語
目前就整理了些常用的命令,足夠對付平常的工作了,如果大家還想讀讀Git原理的話,建議看看原文地址:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001373962845513aefd77a99f4145f0a2c7a7ca057e7570000,里面講的特別全。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。
新聞熱點
疑難解答