最近好久不用git跪腹,用法都忘記了杂腰,再次總結一下
http://blog.csdn.net/gjswxhb/article/details/23221197
1:首先葡兑,跳轉(zhuǎn)到項目根目錄
cd /Work/jkbs_ios
2:查看當前狀態(tài)
git status
3: 把我們要提交的文件的信息添加到索引庫中
git add .
4: 提交文件
$ git commit -m '各種注釋'
5:合并到遠程代碼庫(首先要將遠程庫驼鞭,pull到本地,否則不能push)
git pull
git push
如果系統(tǒng)中有一些配置文件在服務器上做了配置修改,然后后續(xù)開發(fā)又新添加一些配置項的時候,
在發(fā)布這個配置文件的時候,會發(fā)生代碼沖突:
error: Your local changes to the following files would be overwritten by merge: protected/config/main.phpPlease, commit your changes or stash them before you can merge.
如果希望保留生產(chǎn)服務器上所做的改動,僅僅并入新配置項, 處理方法如下:
git stashgit pullgit stash pop
然后可以使用[Git](http://lib.csdn.net/base/28) diff -w +文件名 來確認代碼自動合并的情況.
反過來,如果希望用代碼庫中的文件完全覆蓋本地工作版本. 方法如下:
git reset --hardgit pull
其中git reset是針對版本,如果想針對文件回退本地修改,使用
git checkout HEAD file/to/restore
Git 常用命令
基本操作
* 初始化倉庫 git init
* 查看倉庫狀態(tài) git status
* 向暫存區(qū)中添加文件 git add
git add . 添加全部
git add readme.md 添加單個文件
提交記錄 git commit
1. git commit 提交詳細信息
2. git commit -m "content" 提交簡短信息
3. ? 查看提交日志 git log
4. git log 查看全部日志
5. git log filename 查看指定文件的日志
6. git log -p 查看日志中顯示文件的具體改動
7. ? 查看更改前后的差別 git diff
8. git diff 查看工作樹和暫存區(qū)的差別
9. git diff 分支名 查看當前分支和對比的分支的區(qū)別
分支的操作
* ? 顯示分支一覽表 git branch
* ? 創(chuàng)建分支 git branch 分支名
* ? 切換分支 git checkout 分支名
* ? 創(chuàng)建并切換分支 git checkout -b 分支名
* ? 刪除分支 git branch -d 分支名
* ? 切換回上一個分支 git checkout -
* ? 合并分支 git merge
1. 首先切換回 master 分支掌动,git checkout master
2. 創(chuàng)建合并 git merge --no-ff 分支名,--no-ff 意為記錄下本次分支合并
3. 錄入合并提交信息桃漾,并保存坏匪,這樣就合并成功了。
更改提交操作
* ? 回溯歷史版本 git reset
要讓倉庫的 HEAD撬统、暫存區(qū)、當前工作樹回溯到指定狀態(tài)敦迄,需要 git reset --hard 目標節(jié)點的哈希值恋追。
git log 只能查看當前節(jié)點為終點的歷史日志,因此你可能需要 git reflog罚屋,查看當前倉庫的操作日志苦囱。
從日志中找到需要回溯節(jié)點的哈希值,并用 1 的命令執(zhí)行回溯脾猛。
解決沖突
* ? 發(fā)現(xiàn)沖突撕彤,用編輯器解決沖突
* ? git add 沖突文件名 添加文件
* ? git commit -m "fix conflict" 提交沖突解決
* ? git commit --amend 修改上一條提交信息
* ? git rebase -i HEAD~2 壓縮歷史
* ? 該命令會選定當前分支中包含HEAD(最新提交)在內(nèi)的兩個最新歷史紀錄為對象,并在編輯器中打開猛拴。
* ? 將需要合并的前面的 pick 修改 fixup羹铅。
遠程倉庫
* ? 添加遠程倉庫 git remote add
* ? git remote add origin 遠程倉庫地址 為本地的倉庫設置他的遠程倉庫地址。
* ? 推送至遠程倉庫 git push
* ? 將本地設置了遠程倉庫后愉昆,第一次push职员,需要這樣 git push -u origin master
* ? 獲取遠程倉庫 git clone 地址
* ? 獲取遠程分支 git checkout -b 本地新建分支名 遠程分支名
* ? 本地應于遠程的同名,遠程的分支名前需要帶上 origin/
* ? 獲取最新的遠程倉庫分支 git pull origin master
或者直接 git pull 即可跛溉。
問題1:如何解決 failed to push some refs to git
參考:https://jingyan.baidu.com/article/f3e34a12a25bc8f5ea65354a.html
在使用git 對源代碼進行push到gitHub時可能會出錯
出現(xiàn)錯誤的主要原因是github中的README.md文件不在本地代碼目錄中
可以通過如下命令進行代碼合并【注:pull=fetch+merge]
git pull --rebase origin master
問題二:fatal: remote origin already exists
1焊切、先刪除遠程 Git 倉庫
git remote rm origin
2、再添加遠程 Git 倉庫
git remote add origin git@github.com:FBing/[Java](http://lib.csdn.net/base/17)-code-generator