Overview
Git Profile
1)远程仓库相关命令
检出仓库:$ git clone git://github.com/jquery/jquery.git
查看远程仓库:$ git remote -v
获取远程分支信息到本地:$ git fetch
(查看远程分支显示不全时,执行这个命令)
添加远程仓库:$ git remote add [name] [url]
删除远程仓库:$ git remote rm [name]
拉取远程仓库:$ git pull [remoteName] [localBranchName]
推送远程仓库:$ git push [remoteName] [localBranchName]
2)分支(branch)操作相关命令
查看本地分支:$ git branch
查看远程分支:$ git branch -r
创建本地分支:$ git branch [name] ----注意新分支创建后不会自动切换为当前分支
切换分支:$ git checkout [name]
创建新分支并立即切换到新分支:$ git checkout -b [name]
迁出远程分支 $ git checkout -b dev origin/dev
删除分支:$ git branch -d [name]
-d 选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项
合并分支:$ git merge [name] ----将名称为[name]的分支与当前分支合并
创建远程分支(本地分支push到远程):$ git push origin [name]
删除远程分支:$ git push origin --delete [name]
$ git push origin :[name]
列出分支图
git config --global alias.lg "log --graph --all --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"
git lg (设置了别名后,就可以使用别名进行查看)
3)版本(tag)操作相关命令
查看版本:$ git tag
创建版本:$ git tag [name]
删除版本:$ git tag -d [name]
查看远程版本:$ git tag -r
创建远程版本(本地版本push到远程):$ git push origin [name]
删除远程版本:$ git push origin :refs/tags/[name]
拉取tag版本:git checkout -b branch_name tag_name
4) 子模块(submodule)相关操作命令
添加子模块:$ git submodule add [url] [path]
初始化子模块:$ git submodule init ----只在首次检出仓库时运行一次就行
更新子模块:$ git submodule update ----每次更新或切换分支后都需要运行一下
删除子模块:$ git rm --cached [path]
5)忽略一些文件、文件夹不提交
在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如 target, bin, *.db,
代码提交
命令操作详情:
1、查看修改文件
git status
2、暂存修改的文件
git add .
3、提交已暂存的文件
git commit
4、拉取远程修改内容
git pull -p
如果有冲突,这里修改,修改之后,从1步骤重新开始
5、提交代码到远程分支
git push
如果没有创建远程分支, 则使用如下命令
git push origin 分支名
//如果是从远程分支拉取的,但是没有建立关系,使用以下命令
git branch --set-upstream my_branch origin/my_branch
以下内容比较多,不容易理解
代码提交一般有五个步骤:
1.查看目前代码的修改状态
2.查看代码修改内容
3.暂存需要提交的文件
4.提交已暂存的文件
5.同步到服务器
git config --global push.default matching
git config --global push.default simple
建立关系
git branch --set-upstream my_branch origin/my_branch
1. 查看目前代码的修改状态
提交代码之前,首先应该检查目前所做的修改,运行git status命令
a) 已暂存 (changes to be committed)
new file //表示新建文件
modified //表示修改文件
deleted //表示删除文件
b) 已修改 (changed but not updated)
modified //表示修改文件
deleted //表示删除文件
另外,git 给出了可能需要的操作命令,git add/rm, gitcheckout --
c) 未跟踪 (untracked files)
2. 查看代码修改的内容
git diff
比较某文件与最近提交节点的差异。
注意:如果该文件已暂存,那么应该使用git diff –cached
git diff
比较某文件在提交节点a,节点b的差异。
技巧:如果省略后面一个hashcode,则默认表示与上一提交节点比较。(也可以利用^运算符)
3. 暂存需要提交的文件
如果是新建的文件
则git add
如果是修改的文件
则git add
如果是删除的文件
则 git rm
4. 提交已暂存的文件
git commit
注意注释填写规范。
git commit --amend
修改最近一次提交。有时候如果提交注释书写有误或者漏提文件,可以使用此命令。
5. 同步到服务器
同步到服务器前先需要将服务器代码同步到本地
命令: git pull
如果执行失败,就按照提示还原有冲突的文件,然后再次尝试同步。 命令:git checkout – <有冲突的文件路径>
同步到服务器
命令: git push origin <本地分支名>
远程如果暂时没有分支(即初始,没有master分支),同步本地master分支到远程
git push -u origin master
如果执行失败,一般是没有将服务器代码同步到本地导致的,先执行上面的git pull命令。
新仓库处理
$ touch README.md
$ git init
$ git add README.md
$ git commit -m "first commit"
$ git remote add origin https://github.com/****.git
$ git -u origin master
未整理
git remote prune origin
git pull
git branch -a
- git tag
- git clone https://xxx.xx.xx –depth 1