git笔记
git push -u|--set-upstream origin master
-u, --set-upstream : 见本地分支和远程master分支进行关联,下次提交远程直接git push
git remote show
查看当前分支关联的远程仓库,显示远程仓库的别名。
git1(master): git remote show
origin
git remote show <远程仓库别名>
查看远程仓库详细信息。
git1(master): git remote show origin
* remote origin
Fetch URL: https://github.com/tico-zl/gitpractice.git
Push URL: https://github.com/tico-zl/gitpractice.git
HEAD branch: master
Remote branch:
master tracked
Local branch configured for 'git pull':
master merges with remote master
Local ref configured for 'git push':
master pushes to master (up to date)
git reset HEAD
将加入到缓存区的文件移出
git ckeckout -b
创建分支develop并切换到该分支上。此时的develop分支只是存在于本地仓库,如果想将develop分支推送到远程仓库还需要执行git push --set-upstream|-u origin develop命令,表示与远程分支进行关联
git1(develop) ✗: git push
fatal: The current branch develop has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin develop
git1(develop) ✗: git push --set-upstream origin develop
Total 0 (delta 0), reused 0 (delta 0)
remote:
remote: Create a pull request for 'develop' on GitHub by visiting:
remote: https://github.com/tico-zl/gitpractice/pull/new/develop
remote:
To github.com:tico-zl/gitpractice.git
* [new branch] develop -> develop
Branch 'develop' set up to track remote branch 'develop' from 'origin'.
git1(develop) ✗: git push
Everything up-to-date
git config --global alias.
[!]branch
为命令配置别名,如上命令执行后,git br 就等同于git branch。命令前面加“!”表示执行一个外部命令。全局的配置会写到~/.gitconfig文件中
git config --global alias.br branch
git config --global alias.ui '!gitk'
# 文件.gitconfig
[alias]
st = status
last = log -1
lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
ck = checkout
br = branch
commitm = commit
adds = add
ui = !gitk
git ckeckout -b develop origin/develop | git ckeckout --track origin/develop
这两个命令相同,表示创建本地分支develop并追踪远程分支origin/develop,然后切换到改分支。第一个命令可以创建本地分支名和远程分支不一样的名字,eg:git ckeckout -b develop1 origin/develop
表示创建本地分支develop1并追踪远程分支origin/develop
git rm
这个命令完成两个操作:1,将文件从磁盘中删除;2,将文件从暂存区中移除。
git add .
和git add
的区别
“.”会考虑.gitignore文件,“*“会将所有文件都都加入暂存区中
git合并原则:三方合并原则
git push origin :develop | git push origin --delete develop
两个删除远程分支的命令。 第一个命令的完整命令为git push origin srcBranch:destBranch
,意思为将本地分支推送到远程分支,如果将冒号前面的分支删除,意味着将本地一个空的分支推送到远程分支develop上,即为将其删除。
git refspec详解
1. push操作的完整命令是:git push origin srcBranchs:destBranch
2. pull操作的完整命令是:git pull oirigin srcBranchs:destBranch
3. HEAD标记:HEAD文件是一个指向你当前所在分支的引用标识符,该文件内部并不包含SHA-1值,而是一个指向另外一个引用的指针
4. 当执行 git commit命令时,git会创建一个commit对象,并且将这个commit对象的parent指针设置为HEAD所指向的引用的SHA-1值
5. 我们对于HEAD修改的任何操作,都会被 git reflog完整记录下来
6. 实际上,我们可以通过git底层命令symbolic-ref来实现对HEAD文件内容的修改
git tag 标签
有两种类型的标签,一种是轻量级,一种是带注释。
轻量级:只有一个对commitId的应用;
带注释:会生成一个对象,包含了一个引用、名字和注释说明。