Git開(kāi)發(fā)經(jīng)驗(yàn)總結(jié)

git 安裝

windows

推薦使用 git-bash 下載地址

如果在windows自帶的cmd命令行中運(yùn)行g(shù)it命令出現(xiàn)'git'不是內(nèi)部或外部命令

在環(huán)境變量path中添加git安裝目錄下的cmd目錄的路徑。在安裝git時(shí),使用什么樣的命令行工具,不要選擇第一個(gè)只從git bash中使用git,就會(huì)自動(dòng)在path中添加如下環(huán)境變量。

C:\Program Files\Git\cmd
Debian/Ubuntu
sudo apt-get install git
其它 linux 版本

官方文檔:https://git-scm.com/download/linux

查看 git 版本

git --version

git 配置

git config --global user.name "your name"
git config --global user.email "your email"

配置完成后,需要?jiǎng)?chuàng)建驗(yàn)證用的公鑰

/* ubuntu下先安裝一下ssh */
sudo apt-get install ssh
/* 用戶目錄~/.ssh/下建立相應(yīng)的密鑰文件 */
ssh-keygen -t rsa -C 'you email address@gmail.com'

常用 git 命令

cd <destDir/>
git init
/*添加所有文件*/
git add .
git commit -m 'first commit'
git remote add origin <server>

git pull origin master
git push origin master
---------------------
/* 錯(cuò)誤提示 */
git pull
git branch --set-upstream-to=origin/master
//git pull --allow-unrelated-histories
git add .
git commit -m 'first commit'
git push
--------------------
git status
git diff
git log
git checkout ..可以回退到某個(gè)版本
----------------------
git clone <server>
cnpm install
ng serve --prod
ng build --prod
更新項(xiàng)目
git pull
cnpm update
ng serve
----------------------
多人協(xié)作

git branch
查看當(dāng)前分支

git checkout -b dev
創(chuàng)建dev分支
git branch -m oldname newname
重命名本地分支
git branch

vi a.js

git status

git diff
查看修改了哪些地方

git push origin dev

git checkout master

git pull origin master

git merge dev

git push origin master

修改最后一次提交

git commit --amend

取消已暫存的文件

/* 兩個(gè)文件需要單獨(dú)提交,一不小心 git add . */
git add .
    /* git status 查看狀態(tài),命令輸出會(huì)有所提示 */
    git status
    /* 取消暫存 */
    git reset HEAD <file>...
    git status

取消對(duì)文件的修改

/* 覺(jué)得剛才對(duì) xxxx.txt 修改完全沒(méi)有必要,取消修改,回到之前的狀態(tài) */
$ git status
# Changes not staged for commit:
    # (use "git add <file>..." to update what will be committed)
    # (use "git checkout -- <file>..." to discard changes in working directory)
    #
    # modified: xxxx.txt
    #

//這條命令很危險(xiǎn),請(qǐng)務(wù)必確認(rèn)真的不再需要保留剛才的修改
$ git checkout -- xxxx.txt
    $ git status

查看當(dāng)前的遠(yuǎn)程庫(kù)

git remote

/*也可以加上 -v 選項(xiàng)(譯注:此為 --verbose 的簡(jiǎn)寫(xiě),取首字母),顯示對(duì)應(yīng)的克隆地址:*/
git remote -v

添加遠(yuǎn)程庫(kù)

/* 添加新的遠(yuǎn)程庫(kù),指定一個(gè)簡(jiǎn)單的名字以便引用 */
git remote add [shortname] [url]

從遠(yuǎn)程倉(cāng)庫(kù)抓取數(shù)據(jù)

/*抓取上次 fetch 以來(lái)別人提交的更新,并不會(huì)合并到當(dāng)前工作分支*/
git fetch [remote-name]

/* 自動(dòng)抓取數(shù)據(jù),將遠(yuǎn)端分支自動(dòng)合并到本地倉(cāng)庫(kù)當(dāng)前分支 */
git pull

推送數(shù)據(jù)到遠(yuǎn)程倉(cāng)庫(kù)

git push [remote-name] [branch-name]

查看遠(yuǎn)程倉(cāng)庫(kù)信息

/* 查看某個(gè)遠(yuǎn)程倉(cāng)庫(kù)的詳細(xì)信息 */
git remote show [remote-name]

遠(yuǎn)程倉(cāng)庫(kù)的刪除和重命名

git remote rename

$ git remote rename pb pdd
    $ git remote
    origin
    pdd

/* 移除對(duì)應(yīng)的遠(yuǎn)端倉(cāng)庫(kù),可以運(yùn)行 git remote rm */
$ git remote rm pdd
    $ git remote
    origin

Git 命令別名

$ git config --global alias.unstage 'reset HEAD --'

/* 下面兩條命令等價(jià) */
$ git unstage <filename>
    $ git reset HEAD <filename>

/* 查看最后一次提交的信息 */
git config --global alias.last 'log -1 HEAD'

git分支改名

如果分支不是當(dāng)前分支
git branch -m 原名 新名

如果分支是當(dāng)前分支
git branch -m 新名

刪除本地和遠(yuǎn)程分支

git branch -a
查看所有分支包括遠(yuǎn)程分支

git branch -d branch-name
刪除本地分支

git push origin --delete branch-name
刪除遠(yuǎn)程分支

合并分支

git merge [branch_name1] 將branch_name1分支合并到當(dāng)前分支。
撤銷(xiāo)上一次的合并分支:git merge --abort

.gitignore 模板(僅供參考)

# See http://help.github.com/ignore-files/ for more about ignoring files.

# compiled output
/dist
/tmp
/out-tsc

# dependencies
node_modules/

# IDEs and editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace

# IDE - VSCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json

# misc
/.sass-cache
/connect.lock
/coverage
/libpeerconnection.log
npm-debug.log
testem.log
/typings

# e2e
/e2e/*.js
/e2e/*.map

# System Files
.DS_Store
Thumbs.db

想要查看更多文章,敬請(qǐng)關(guān)注 dravenxiaokai 的簡(jiǎn)書(shū)

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

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

  • Git是目前最流行的版本管理系統(tǒng),也是最先進(jìn)的分布式版本控制系統(tǒng)(distributed version cont...
    pro648閱讀 5,950評(píng)論 1 17
  • 問(wèn)題一: 現(xiàn)在最需要的是什么?答: 現(xiàn)在最需要一份工作,能夠讓自己生存下來(lái),不在問(wèn)父母要生活費(fèi)。問(wèn)題二: 現(xiàn)...
    洪武大帝0閱讀 196評(píng)論 0 0
  • FCC成都社區(qū)從成立到現(xiàn)在,就快一個(gè)年頭了。一直不愛(ài)寫(xiě)文章的我終于鼓起勇氣來(lái)寫(xiě)下第十一期活動(dòng)的回顧。請(qǐng)多多指教~^...
    FreeCodeCamp成都閱讀 1,184評(píng)論 2 4
  • 有很多好電影,但是好不容易休息,還是不想看,因?yàn)榕鲁翋?,怕費(fèi)神。 想想,也難怪現(xiàn)在的娛樂(lè)綜藝節(jié)目越來(lái)越多,口水劇也...
    錦瑟_db50閱讀 153評(píng)論 0 0
  • 遇見(jiàn)有時(shí)是一場(chǎng)劫難,而我卻無(wú)法渡劫,一段感情里沉淪太久,甚至把自己忘記了。 有人說(shuō),留存于腦中的記憶越多,就...
    溫暖心靈的書(shū)話閱讀 331評(píng)論 0 1

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