創(chuàng)建Git倉庫
- cd到需要git管理的文件夾
git init
Git目錄結構
hooks:目錄包含客戶端或服務端的鉤子腳本;
info:包含一個全局性排除文件
logs:保存日志信息
objects:目錄存儲所有數(shù)據(jù)內(nèi)容;
refs:目錄存儲指向數(shù)據(jù)(分支)的提交對象的指針
config:文件包含項目特有的配置選項
description:用來顯示對倉庫的描述信息
HEAD:文件指示目前被檢出的分支
index:文件保存哲存區(qū)信息
查看Git 全局設置
git config -- list
Git 全局有戶名和郵箱的設置
git config --global user.name "填寫你的有戶名"
git config --global user.email "填寫你的郵箱"
Git 當前倉庫有戶名和郵箱的設置
git config user.name "填寫你的有戶名"
git config user.email "填寫你的郵箱"
或者
git config --local user.name "填寫你的有戶名"
git config --local user.email "填寫你的郵箱"
Git別名的配置 aljas
// git status是用來查看文件修改的命令彪笼,可以使用git st來代替
git config --global alias. st status
//git pul是用來遠程拉取倉庫代碼的命令,可以使用git pl來代替
git config --global alias.pl pul1
// git ps是用來將本地修改推送至遠程倉庫的命令蚂且,可以使用git
git config --global alias.ps push
查看Git的文件狀態(tài)
git status ./
添加修改過的文件
git add ./ // 添加所有修改過的文件
git add 文件名 // 添加指定的修改過的文件
查看修改文件的位置和內(nèi)容
git diff //查看沒有add 之前的文件
git diff --staged //查看沒有add 之后的文件(即添加到暫存區(qū))
提交修改過的的文件
git commit -m "提交說明"
git commit -a -m "提交說明" :先把已經(jīng)跟蹤過的文件添加到暫存區(qū)配猫,讓后提交。
查看Git的提交日志
git log
git log --pretty=oneline // 一行一行的展示日志內(nèi)容
或者
git log --oneline
未添加進暫存區(qū)的撤銷
git checkout -- 文件名 //對單個文件進行撤銷
git checkout -- . //對全部修改過的文件進行撤銷
回退已經(jīng)添加到暫存區(qū)的某個文件
git reset HEAD :回退已經(jīng)添加到暫存區(qū)的所有文件
git reset HEAD filename :回退已經(jīng)添加到暫存區(qū)的某個文件
回退版本提交 git reset
git reset :是HEAD指針和分支一起移動杏死,移動到指定的提交ID
**HEAD指針指向的當前提交對象**
**HEAD~指針指向的上一次提交對象**
git reset --soft 提交ID :只是HEAD指針和分支一起移動泵肄,工作去和暫存區(qū)沒有改變
git reset 提交ID 或者 git reset --mixed 提交ID : 不僅 HEAD指針和分支一起移動,而且改變了暫存區(qū)淑翼,但沒有改變工作區(qū)腐巢。
git reset --hard 提交ID :(hard:強硬的) 不僅 HEAD指針和分支一起移動冯勉,而且改變了工作去和暫存區(qū)
創(chuàng)建分支
//在本地新建分支()
git branch newbranch
// 在指定的提交ID處隘弊,創(chuàng)建分支
git branch newbranch 提交ID
//把本地分支push到遠程
git push origin newbranch
//在本地新建分并且切換的新的分支上
git checkout -b newbranch
刪除分支
git branch -d branchname //刪除本地分支
git branch -D branchname //強制刪除本地分支
git push origin -d branchname //刪除遠程分支
切換分支
git checkout branchname
合并分支
- git merge和git rebase都可以進行分支的合并
- git merge合并后保留兩個分支的記錄
- git rebase合并后會展示成一個分支的記錄衡载,另一個分支的提交實際生成了一個副本
主要:合并分支前贞绵,必須保證需要合并的分支是干凈的杯活。
//把新的分支合并到當前分支上
git merge newbranch
將遠程git倉庫里的指定分支拉取到本地(本地不存在的分支)
git checkout -b 本地分支名 origin/遠程分支名
給Git倉庫打版本
git tag - a 版本號 -m "說明信息"
git push --tag //推送tag
我們還可以給指定的提交ID 添加tag
git tag - a 版本號 提交ID -m "說明信息"
遠程抓取
git fetch // fetch不會對本地倉庫內(nèi)容進行更新
git merge // 真正的更新本地倉庫的內(nèi)容
git pull = git fetch +git merge
遠程推送
git push origin branchname // 把本地文件推送到遠程分支上
git push origin branchname -- force // 強制把本地文件推送到遠程分支(force:強迫狰腌,武力)
git push --tag //推送tag
遠程倉庫的操作(remote)
git remote add origin 項目倉庫地址 //給本地倉庫添加遠程倉庫關聯(lián)(一個本地倉庫可以添加多個遠程倉庫柳畔,但是最好一個本地倉庫對應一個遠程倉庫)
git remote -v // 查看本地倉庫關聯(lián)遠程倉庫
git remote remove origin // 刪除本地倉庫關聯(lián)的遠程倉庫
創(chuàng)建新版本庫
git clone 項目倉庫地址
cd 項目文件夾
touch README.md //創(chuàng)建文件
git add README.md
git commit -m "add README"
git push -u origin master
已存在的文件夾或 Git 倉庫
cd existing_folder
git init
git remote add origin 項目倉庫地址
git remote -v // 查看本地關聯(lián)倉庫
git add .
git commit
git push -u origin master