git 忽略配置
全局忽略DS_Store: 1.vi ~/.gitignore_global 在gitignore_global中寫入: .DS_Store */.DS_Store 2.vi ~/.gitconfig 配置.gitconfig 文件如下: [user] name = xiaoronglv email = xxxxx@gmail.com [push] default = matching [core] excludesfile = /Users/holy/.gitignore_global 其中:/Users/holy 可以在命令行輸入pwd即可查看。
詳見:http://blog.csdn.net/que_li/article/details/52918545
git 使用整理
密鑰生成
cd ~/.ssh //檢查本機中是否有公鑰信息 mkdir key_backup cp id_rsa*key_backup rm id_rsa //刪除已有公鑰 "新生成公鑰" ssh-keygen -t rsa -C "git注冊賬號郵箱" //回車后會讓輸入用戶名,再回車輸入密碼,在是確認密碼 cat ~/.ssh/id_rsa.pub //顯示剛生成的公鑰 /*將公鑰添加到本地*/ <windows> clip < ~/.ssh/id_rsa.pub <Mac> pbcopy < ~/.ssh/id_rsa.pub <Linux> xclip -sel clip < ~/.ssh/id_rsa.pub 然后在 .ssh文件中的 id_rsa就為公鑰 把公鑰添加到coding中 然后運行 ssh -T git@git.coding.net 看是否已經聯通
上傳文件到項目
電腦中創建一個空文件,不要以中文命名。 打開電腦cmd命令框 cd 文件目錄 //配置文件根目錄 git init //初始化 git remote add origin 遠程項目地址 //鏈接遠程服務器 git add . //上傳目錄下所有文件 git commit -m "第一次上傳" //提交,並注釋 git pull origin 分支 //鏈接遠程主機分支到本地 git push origin master //上傳本地所有文件到master分支 git push -u origin 分支 // 當遠程存在多個分支時,使用-u
本地分支
git branch //查看本地所有分支 git branch xxxx //創建xxxx分支 git checkout xxxx //切換到分支xxxx git branch -d xxxx //刪除本地xxxx的分支,注意需要在非刪除分支下 切換分支時提示you need to resolve your current index first git reset --merge
克隆代碼到本地
git clone 遠程地址 // 下載遠程代碼到本地 git clone 遠程地址 -b xxxx // 克隆遠程某分支上的代碼,xxxx為分支名
刪除文件
clone遠程文件后,刪除需要刪除的文件,然后
git add --all
刪除遠程倉庫文件及文件夾
git rm -r --cached ignore_file //刪除緩存 git rm -r --cached a/2.txt //刪除a目錄下的2.txt文件 git rm -r --cached a // 刪除a目錄 git commit -m "刪除a目錄下的2.txt文件" git push
查詢跟蹤
git status 反饋: nothing to commit,working directory clean // 沒有提交,項目很干凈 changes not staged for commit // 有紅字提示,項目被修改,但是未被暫存 changes to be committde // 綠字提示,項目已經被暫存
遠程庫操作
git remote // 列出遠程分支 git remote -v // 列隊遠程分支對應的url git remote add xxx url // 創建遠程地址為url的xxx分支 git remote remove xxx //刪除遠程分支xxx git remote set-url xxx url // 將xxx的遠程地址變更為url
config,設置多個密鑰到本地
//第一個密鑰使用默認形式,第二個密鑰配置如下 Host gitlab地址 andy // andy為需要的名稱 HostName gitlab地址 User git Port 22 IdentityFile ~/.ssh/gitlab_id_rsa // 密鑰地址
rebase
https://www.atlassian.com/git/tutorials/rewriting-history/git-rebase https://www.atlassian.com/git/tutorials/merging-vs-rebasing
多分支操作合並到master
// 自己的工作分支 git checkout xxx // 提交工作分支修改 git commit -a // 回到主分支 git checkout master // 獲取遠程最新的修改,不會產生沖突 git pull // 回到工作分支 git checkout xxx // 合並主干修改,如果有沖突在此時解決 git rebase master // 回到主分支 git checkout master // 合並工作分支的修改,此時不會產生沖突 git merge xxx // 提交到遠程主干 git push
刪除遠程分支
git push --delete origin xxx //刪除遠程上xxx的分支
清空緩存棧
git stash clear
node_modules過長無法刪除
rm -rf node_modules/
push tag發布
git tag publish/版本號 git push origin publish/版本號
切換分支
$ ~/ccbin/mkview.sh 切換分支
項目相關命令
##ssh三方訪問工具SecureCRT 一般口令 ssh admin@服務器地址 * 服務器名稱:admin * 密碼: * cd ccbin 切換到ccbin文件 * ./ccupdate.sh 更新服務器 * ./ccupdate.sh && ./build.sh && ./deploy.sh * 錯誤日志 * cd logs/appstore 切換到對應項目日志 * ls 查看日志列表 * tail -f common-error.log * 修改antx * vim antx.properties * i修改 :w 保持 :q 退出 * ls 查看目錄下的內容 * tail -200f common-error.log 查看錯誤日志
刪除文件夾
* cd /usr/local/bin 切換路徑 * sudo rm -rf /usr/local/bin/tnpm 刪除tnpm文件夾
創建並切換到本地分支
* git checkout -b 【本地分支名】 origin/【遠程分支名】
刪除.git 重新初始化git(delete the old .git
history and initialize new history)
$ rm -rf .git
$ git init
檢出命令
* git clone -b 【本地分支名】【遠程分支名】
合並分支:
* git branch 查看本地分支 * git branch -a 查看分支詳情(本地分支及遠程分支) * git checkout 目的分支(如master) * git merge 待合並分支(如branch1)【即將branch1分支合並到master】 * git push origin master 將合並后的代碼推送到遠程分支
回滾版本
* git log 查看提交版本 * git revert 版本號 將本地庫回滾到該版本號之前的版本(即取消該版本及之后的提交) * 解決沖突 * git add . && git commit -m “” && git push 重新提交版本之前的代碼
刪除分支
* git branch -D br 刪除本地分支
* git push origin :br (origin 后面有空格) 刪除遠程分支
【遠程代碼庫回滾】:
這個是重點要說的內容,過程比本地回滾要復雜 應用場景:自動部署系統發布后發現問題,需要回滾到某一個commit,再重新發布 原理:先將本地分支退回到某個commit,刪除遠程分支,再重新push本地分支 操作步驟: 1、git checkout the_branch 2、git pull 3、git branch the_branch_backup //備份一下這個分支當前的情況 4、git reset --hard the_commit_id //把the_branch本地回滾到the_commit_id 5、git push origin :the_branch //刪除遠程 the_branch 6、git push origin the_branch //用回滾后的本地分支重新建立遠程分支 7、git push origin :the_branch_backup //如果前面都成功了,刪除這個備份分支
http://www.jianshu.com/p/8f0433090e2b?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io Git詳解以及使用遇到問題解決
Git stash 命令
git stash: 備份當前的工作區的內容,從最近的一次提交中讀取相關內容,讓工作區保證和上次提交的內容一致。同時,將當前的工作區內容保存到Git棧中。
git stash pop: 從Git棧中讀取最近一次保存的內容,恢復工作區的相關內容。由於可能存在多個Stash的內容,所以用棧來管理,pop會從最近的一個stash中讀取內容並恢復。
git stash list: 顯示Git棧內的所有備份,可以利用這個列表來決定從那個地方恢復。
git stash clear: 清空Git棧。此時使用gitg等圖形化工具會發現,原來stash的哪些節點都消失了。
一、For Windows
- 下載地址:http://msysgit.github.io/
- 安裝完成后,在開始菜單里找到“Git”->“Git Bash”,蹦出一個類似命令行窗口的東西,就說明Git安裝成功!
- git 配置(其實是為常用命令創造別名)
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
—global 這個參數是說明,當前設備上的所有Git都會使用這個配置。
- 創建版本庫
$ mkdir abc //創建目錄 abc
$ cd abc //進入 abc 目錄
$ pwd //顯示當前目錄
執行結果:/Users/userName/abc
- 將abc目錄變為某項目的版本庫目錄
$ git init //初始化,會生成一個 git文件夾,注意別動改文件夾下內容。用於跟蹤管理版本
執行結果:Initialized empty Git repository in /Users/userName/abc .git/
- 新增文件
$ git add README.MD //當前目錄下,創建README.MD
$ git commit -m "123123" //添加備注,並添提交至git倉庫
對於 git config -m "" 的省略,可以為 git c
commit是批量型提交,但add確是需要多次添加一個文件
- 查看狀態
$ git status
- 關聯遠程庫
$ git remote add origin 遠程庫地址 //遠程庫地址是托管平台創建代碼庫時所生成的xxxx.git
主要用於對代碼托管平台進行維護,github、coding
- 更新遠程代碼到本地
- git clone xxx.git庫地址
git pull origin master
- 將git倉庫的項目文件,提交至遠程庫
git push -u origin master //將該目錄下的文件推送到遠端(origin)上的 "master" 分支,第一次提交必須這么寫
git push origin master //推送最新修改,第一次之后每次更新可以使用該命令
- 版本回滾
git log //輸出提交的歷史記錄
git checkout 9位字符編碼
或者
git checkout -b my_previous_version 9位字符編碼
- 刪除分支
git branch -d new_feature//把分支合並到主干分支,從主干(master)分支上發送
- 假如修已經合並了,那么只會刪除分支。假如分支未合並,會得到錯誤信息。所以需要強制刪除
git branch -D new_feature
- 總的來說
$ git init
$ git remote add origin xxxx.git
$ git pull
$ git add .
$ git commit -m "123123"
$ git push
在 git 中忽略文件 gitignore 與 exclude
常見問題
- error: failed to push some refs to …
- 這是由於遠程倉庫中代碼版本與本地不一致沖突導致的,需要先git pull更新
- 如果出現報錯 fatal: Couldn’t find remote ref master或者fatal: ‘origin’ does not appear to be a git repository以及fatal: Could not read from remote repository.
- 則需要重新輸入$ git remote add xxxx.git
- fatal: remote origin already exists.
- $ git remote rm origin
- $ git remote add origin xxxx.git
- 如果輸入$ git remote rm origin 還是報錯的話,error: Could not remove config section ‘remote.origin’. 我們需要修改gitconfig文件的內容
- 找到你的github的安裝路徑,我的是C:\Users\ASUS\AppData\Local\GitHub\PortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8\etc.找到一個名為gitconfig的文件,打開它把里面的[remote “origin”]那一行刪掉就好了!
- there is no tracking information
- 該問題發生在新創建遠程庫,進行git pull更新時
- git branch —set-upstream master origin/master //這樣才可以直接輸入git pull 、git push
- 否則每次輸入 git push origin master || git pull origin master
- 最后按以下方式提交
git add .
git commit -m "first time add project"
git push
命令一覽表