Git 入門 常用命令 Kaki的博客
Git常用命令與理解:
1.svn是集中式的版本控制
Git是分佈式的版本控制
2. 工作流程如下:
1.從遠程倉庫中克隆代碼到本地倉庫
2.從本地倉庫中checkout代碼然後進行代碼修改
3.在提交前先將代碼提交到暫存區
4.提交到本地倉庫。本地倉庫中保存修改的各個歷史版本
5.修改完成後,需要和團隊成員共享代碼時,將代碼push到遠程倉庫
3. 常用的Git代碼託管服務
gitHub( 地址:https://github.com/ )是一個面向開源及私有軟件項目的託管平臺,因爲只支持Git 作爲唯一的版本庫格式進行託管,故名gitHub
碼雲(地址: https://gitee.com/ )是國內的一個代碼託管平臺,由於服務器在國內,所以相比於GitHub,碼雲速度會更快
GitLab (地址: https://about.gitlab.com/ )是一個用於倉庫管理系統的開源項目,使用Git作爲代碼管理工具,並在此基礎上搭建起來的web服務
4.常用命令:
日常操作:
設置用戶信息
git config --global user.name “itcast”
git config --global user.email “[email protected]”
查看配置信息
git config --list
git config user.name
通過上面的命令設置的信息會保存在~/.gitconfig文件中
創建基本類命令:
touch .gitignore創建文件
git init 本地初始化創建本地倉庫
git clone 遠程Git倉庫地址 克隆項目、
git status 查看文件狀態
git status -s 簡潔查看
git add 添加到暫存區
git reset 將暫存區的文件取消暫存
git commit 將暫存區的文件提交到本地倉庫
例:git commit -m '日誌信息' 文件
git pull 是從遠程倉庫獲取最新版本並merge(合併)到本地倉庫
git push origin [分支] :上傳到遠程倉庫
git rm 刪除文件
git log 查看日誌
刪除鎖文件
$ rm .git/index.lock
遠程倉庫操作:
git remote 查看遠程倉庫
git remote -v 詳細查看
git remote show origin 詳細查看
添加遠程倉庫:
git remote add <shortname> <url>,默認origin
克隆倉庫:
git clone [url]
移除無效的遠程倉庫:
git remote rm
從遠程倉庫中抓取與拉取
git fetch 從遠程倉庫獲得最新版本到本地倉庫,不會自動merge
git pull 是從遠程倉庫獲取最新版本並merge(合併)到本地倉庫
git pull origin master --allow-unrelated-histories
注意:如果當前本地倉庫不是從遠程倉庫克隆,而是本地創建的倉庫,並且倉庫中存在文件,
此時再從遠程倉庫拉取文件的時候會報錯(fatal: refusing to merge unrelated histories ),
解決此問題可以在git pull命令後加入參數--allow-unrelated-histories
推送到遠程倉庫: 遠程倉庫名 分支名
git push [remote-name] [branch-name]
Git分支常用命令:
git branch 查看所有本地分支
git branch -r 查看所有遠程分支
git branch -a 查看所有分支
//創建分支
git branch [分支名]
//切換分支
git checkout [分支名]
//推送至遠程倉庫分支(分支:就是複製一個主分支一莫一樣分支)
git push origin b1(直接創建)
//合併分支
git merge b3[當前分支想要合併的分支]
分支衝突:
有時候合併操作不會如此順利。 如果你在兩個不同的分支中,
對同一個文件的同一個部分進行了不同的修改,Git 就沒辦法合併它們,
同時會提示文件衝突。此時需要我們打開衝突的文件並修復衝突內容,
最後執行git add命令來標識衝突已解決
//刪除分支
git branch -d b1
*Git標籤
顯示所有標籤: git tag
查看tag信息: git show [tag]
//創建一個tag
git tag v1.0
//將標籤推送至遠程倉庫
# 提交指定tag git push [remote] [tag]
//檢出標籤
git checkout -b [branch] [tag]
**刪除標籤
#刪除本地
git tag -d [tag]
#刪除遠程
git push origin :refs/tags/[tags]
5.幾個定義:
版本庫:.git就是版本庫,版本庫中存儲了很多配置信息、日誌信息和文件版本信息等
工作目錄:包含.git工作目錄,寫代碼的地方
暫存區: 是臨時保存文件的地方
工作區:寫好的代碼=>git add 添加到暫存區 => git commit =>添加至版本庫,
本地倉庫=>push推送到git遠程倉庫
6.Git工作目錄下文件的兩種狀態
untracked 未跟蹤(未被納入版本控制)
tracked 已跟蹤(被納入版本控制)
Unmodified 未修改狀態
Modified 已修改狀態
Staged 已暫存狀態
7.將文件添加至忽略列表
忽略文件的語法
# no .a files
*.a
# but do track lib.a, even though you're ignoring .a files above
!lib.a
# only ignore the TODO file in the current directory, not subdir/TODO
/TODO
# ignore all files in the build/ directory
build/
# ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt
# ignore all .pdf files in the doc/ directory
doc/**/*.pdf
強制pull,與強制push
第二種方法:
使用這個強制的方法
git pull origin master --allow-unrelated-histories
後面加上 --allow-unrelated-histories , 把兩段不相干的 分支進行強行合併
後面再push就可以了 git push gitlab master:init
如何解決failed to push some refs to git
可以通過如下命令進行代碼合併【注:pull=fetch+merge]
git pull --rebase origin master
linux操作:
rm -rf /home/git/pinyougou.git
git init --bare /home/git/pinyougou.git
# 授予git用戶爲 /home/git目錄及所有子目錄的擁有者
chown -R git:git /home/git
歡迎點贊關注收藏哦 ,碼雲搜索KakiNakajima