Git常用命令
推薦使用 msysgit + tortoisegit 或 msysgit + sourcetree椿息,文末附有下載地址
添加SSH KEY 到github
http://jingyan.baidu.com/article/a65957f4e91ccf24e77f9b11.html
創(chuàng)建git資源庫
git init --bare 庫名稱
在用戶文件夾下把資源clone下來
git clone <倉庫目錄> /g/software/repository/git/itheima <用戶目錄> .
注意:clone時候用戶目錄必須為空
創(chuàng)建一個文件氨肌,納入到版本控制中插掂。
git add <文件名>
第一次執(zhí)行會出警告:warning: LF will be replaced by CRLF in readme.txt.
The file will have its original line endings in your working directory.
警告處理:需要配置用戶信息
git config user.name = "zhangsan"
git config user.email = "itheima@gmail.com"
git add -A:全部添加
git add . :全部添加
注:Git全局配置和單個倉庫的用戶名郵箱配置
配置一個全局的用戶名和郵箱
git config --global user.name “you name”
git config --global user.email "your email"
git config --list
如果你公司的項目是放在自建的gitlab上面, 如果你不進行配置用戶名和郵箱的話, 則會使用全局的, 這個時候是錯誤的, 正確的做法是針對公司的項目, 在項目根目錄下進行單獨配置
git config user.name “your gitlab’s Name”
git config user.email "your gitlab's email"
git config --list
git config --list查看當前配置, 在當前項目下面查看的配置是全局配置+當前項目的配置, 使用的時候會優(yōu)先使用當前項目的配置
提交到本地版本庫里。
git commit <文件名>
git commit -m "提交信息"
推送到遠程共享版本庫中
git push origin master
其中赖瞒,origin 不用變总珠,master是你要推送到的遠程分支,如果不知道遠程分支名字溉仑,可以執(zhí)行git branch -va 查看所有的遠程分支挖函,然后直接copy就行
git push origin HEAD:feature/cangui-qianfan-ticketid
拉取最新的文件
git pull origin master
提示出錯信息:fatal: remote origin already exists.
解決辦法如下:輸入$ git remote rm origin
查看當前所在分支
git branch
新建分支
git branch 【分支名】
切換到其他分支
git checkout 【分支名】
新建一條分支并切換到新分支
git checkout -b 【分支名】:
合并分支
git merge 【分支名】 (這里是:git merge bug 將當前分支和bug分支合并)
合并某個提交
git cherry-pick commitId(commitId對應到另外一個提交的id,如果沒有沖突的話浊竟,會主動執(zhí)行commit操作)
合并多個提交
git cherry-pick commitid1..commitid100(不包含commitid1)
git cherry-pick commitid1^...commitid100(包含commitid1)
刪除分支
git branch -d 【分支名】:刪除分支
查看分支狀態(tài)
git status:
查看合并分支
git branch --merged 查看與當前分支合并了的分支
合并
git branch --no-merged 查看與當前分支沒有合并的分支
提交到遠程
將本地的today分支推送到Github上怨喘,輸入:git push origin today,這樣就在遠程庫創(chuàng)建了today分支
提交代碼
git push 【遠程庫名】【本地分支名】:【遠程分支名】
如將本地的write分支推送到一個名為read的分支上振定,輸入:git push origin write:read
刪除分支
將不需要的遠程分支刪除掉必怜,輸入命令:git push 【遠程庫名】 :【遠程分支名】
如,將遠程的read分支刪除后频,輸入:git push origin :read
忽略文件
echo "bin.ddl" >> .gitignore : 創(chuàng)建一個.gitignore的文件夾梳庆,并將bin.dll作為內容輸入暖途。
.gitignore里面包含的文件名字在commit或者add的時候都會被忽略
git 文件的三個狀態(tài)
working directory staging area git directory
工作區(qū) add(臨時區(qū)) commit(傳到本地的版本倉庫)
git diff
git diff --cached: 比較臨時區(qū)和本地倉庫的區(qū)別
git diff --staged: 比較工作區(qū)和臨時區(qū)域的差別。同 git diff
打tag
git tag -a "名字" -m "tag信息"
從遠程分支開出本地分支并關聯(lián)
git checkout -b dev origin/dev 創(chuàng)建本地分支dev膏执,并且和遠程origin/dev分支關聯(lián)驻售,本地dev分支的初始代碼和遠程的dev分支代碼一樣
將本地分支跟遠程分支關聯(lián)
git branch --set-upstream-to=origin/master master 上面的命令是把origin代表的遠程庫的master分支和本地的master分支關聯(lián)起來
查看本地分支對應的遠程分支
git branch -vv
回滾
把本地master代碼回撤到某個提交點之前,git reset -q –hard commid-id
合并master的代碼rebase
git pull --rebase <遠程主機名> <遠程分支名>
git pull --rebase origin next 就是代表將遠程next 分支的代碼合并回你的本地分支
相關學習資料
1更米、在線練習網址:https://learngitbranching.js.org
2欺栗、Git Rebase: http://blog.csdn.net/hudashi/article/details/7664631/
3、中文教程:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
軟件地址
sourcetree: https://www.sourcetreeapp.com/
msysgit: https://git-for-windows.github.io/
tortoisegit: https://tortoisegit.org/