文章目录
一些基本命令
#查看本地仓库状态
git status
#查看本地分支列表
git branch --list
#查看本地和远程所有分支
git branch -a
#创建本地分支
git checkout -b localbranch
#删除本地分支
git branch -d branchname
git branch -D branchname --强制删除
#创建远程分支,将本地develop-local推送到远程develop-remote分支上
git push origin develop-local:develop-remote
#链接中央仓库
git branch --set-upstream-to=origin/0.1-beta 0.1-beta
gitlab新建一个空仓库之后,上传本地代码到仓库
Create a new repository
git clone http://xxxx/xx/xxx.git
cd weather-gather
touch README.md
git add README.md
git commit -m "add README"
git push -u origin develop
Push an existing folder
cd existing_folder
git init
git remote add origin http://xxxx/xx/xxx.git
git add .
git commit -m "Initial commit"
git push -u origin develop
Push an existing Git repository
cd existing_repo
git remote rename origin old-origin
git remote add origin http://xxxx/xx/xxx.git
git push -u origin --all
git push -u origin --tags
Git fork后如何同步源仓库更新
原文:http://www.cnblogs.com/leisurelylicht/p/Git-fork-hou-ru-he-tong-bu-yuan-cang-ku-geng-xin.html
1. 设置源仓库的远程地址
>> git remote add [新地址名称] [源仓库远程地址]
>> git remote add upstream https://github.com/leisurelicht/wtfpython-cn
2. 同步fork
>> git fetch [新地址名称]
>> git fetch upstream
3. 本地切换到想要更新的分支上
>> git checkout [branch]
>> git checkout develop
4. 把源仓库的远程分支合并到本地
>> git merge [新地址名称/分支]
>> git merge upstream/develop
5. 更新到自己的远程库上
>> git push origin develop
git关联本地仓库与远程仓库
#查看本地关联的远程仓库
git remote -v
# 设置远程仓库地址
git remote add origin http://xxx.git
# 拉取远端仓库
git pull origin master --allow-unrelated-histories
# 将本地分支与远程仓库master分支关联
git branch --set-upstream-to=origin/master master
git修改关联的远程仓库
方法一 通过命令直接修改远程地址
进入git_test根目录
git remote 查看所有远程仓库, git remote xxx 查看指定远程仓库地址
git remote set-url origin http://192.168.100.235:9797/john/git_test.git
方法二 通过命令先删除再添加远程仓库
进入git_test根目录
git remote 查看所有远程仓库, git remote xxx 查看指定远程仓库地址
git remote rm origin
git remote add origin http://192.168.100.235:9797/john/git_test.git
方法三 直接修改配置文件
进入git_test/.git
vim config
[core]
repositoryformatversion = 0
filemode = true
logallrefupdates = true
precomposeunicode = true
[remote "origin"]
url = http://192.168.100.235:9797/shimanqiang/assistant.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
修改 [remote “origin”]下面的url即可
如果修改远程关联的仓库后,需要推送代码,可以执行
git push -u origin --all
或
git push -u origin --tags
查看关联的远程仓库
git remote -v
Git :fatal: refusing to merge unrelated histories解决
git pull origin master --allow-unrelated-histories
Git合并分支
git checkout master //切换到master分支
git merge hotfix //将hotfix分支上的修改合并到master分支上
git修改了本地内容 如何恢复
git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态
git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop回复。
git reset --hard HASH #返回到某个节点,不保留修改。
git reset --soft HASH #返回到某个节点。保留修改
git clean -df #返回到某个节点
git clean 参数
-n 显示 将要 删除的 文件 和 目录
-f 删除 文件
-df 删除 文件 和 目录
git清除未加入版本控制的文件
git checkout . && git clean -xdf
提交日志规范
feature: 功能添加
bugfix: bug修复
change: 调整,比如配置,某些方法替换等
optimize: 优化过程
doc: 文档变更
refactor: 重构,功能不变
tests: 测试代码的调整
merge:分支合并
delete:分支删除
假如既添加了功能又优化了过程
Feature(optimize): 添加了××××功能;同时优化了××××功能。
.gitignore
# maven ignore
target/
*.jar
!.mvn/wrapper/*
*.war
*.zip
*.tar
*.tar.gz
# eclipse ignore
.settings/
.project
.classpath
# temp ignore
*.log
*.cache
*.diff
*.patch
*.tmp
# system ignore
.DS_Store
Thumbs.db
*.orig
# idea ignore
.idea/
*.ipr
*.iws
.mymetadata
.checkstyle
.classpath
.project
.class
.war
.zip
.rar
*.iml
.settings/*
/indexes/*
/target/*
/src/main/webapp/WEB-INF/classes/*
/src/main/webapp/userfiles/*
/target/
# *.properties
常见问题
Git解决Filename too long的问题
git有可以创建4096长度的文件名,然而在windows最多是260,因为git用了旧版本的windows api,为此踩了个坑。
解决方式是:
git config --global core.longpaths true