Branch
** 创建分支**
git branch xxx
切换分支
git checkout xxx
合并在一起,创建分支并且切换到新建的分支
git checkout -b xxx
删除分支
git branch -d xxx
强制删除
git branch -D xxx
Reset 大神回答
git reset HEAD~[number]
--A--B--C(Head, branch) head当前指向C
- --soft
- head 指向B,但是你在C上做的改动还保留在那里,
git status
查看是Staged,此时如果你commit,那么C上做的改动会提交到B -
--mixed(default)
- head 也是指向B,但不同于soft的是,你add过得文件显示的是unstaged状态,如果想要commit,你首先还要git add
- --hard
- hard和mixed基本一样,除了,你在C上做的改动(包含git add 和 没有被add的修改)将会被全部remove,你会永久失去你做的修改,所以使用hard前,先执行下git status 查看是否work directory或者staged有内容
tag常用命令
git tag
列出tag
git tag -l 'v1.2.*'
列出以v1.2开头的所有tag
git tag -a xxx -m 'tag信息'
创建一个包含说明信息的tag
git show v1.1
查看tag的详细信息
git push origin v1.1
推送tag v1.1 到远程
git push origin --tags
推送所有新增的tag到远程
git tag -d v1.1
删除本地tag
git push origin :refs/tags/v1.1
删除远程tag
删除命令
git rm file1.txt
git commit -m "remove file1.txt"
如果仅仅想要删除git远程分支文件,而在本地不被移除,可以使用
git rm --cached file.txt
最后
git push origin branch_name
Checkout
git checkout -- .
撤销所有未暂存的文件
git checkout -- file
撤销某个未暂存的文件
.gitignore
进入.gitignore 输入对应的语言 比如Objective-C, 自动帮你生成对应的.gitignore文件
.gitignore
里面包含的文件不会上传到远程分支, 你要在执行git add .
之前完成.gitignore文件的配置
如果先执行了git add .
, 可以按下列步骤操作
* 这一步的操作相当于回到 git add 之前
git rm -r --cached .
git add .
git commit -m "xxxxxx"
查看remote
git remote
git remote -v
删除remote
git remote remove xx
git remote rm xx
切换remote
git remote rename origin old-origin
git remote add origin git@gitlab.sdjjia.com:sdjj/shanjiang.git
git push -u origin --all
git push -u origin --tags