git 常见命令

git config --global user.name “zhangxing”
git config --global user.email “xingzhang@sf-express.com”
git pull
git status
git log 显示所有提交过的版本信息
git add .

git commit -m “describe”

git commit -a 除了将暂存区里的文件提交外,还提交 Changes bu not updated 中的文件。
git commit 提交的是暂存区里面的内容,也就是 Changes to be committed 中的文件。

git push -u origin master
jetty:run -Djetty.port=8099
git log -p
git show 加上版本hash,查看某次具体修改

如果在回退以后又想再次回到之前的版本,可以用reflog查看到commit id 并使用reset设置

git reflog

dae675a HEAD@{0}: reset: moving to HEAD^
8e27eb6 HEAD@{1}: commit: append GPL
dae675a HEAD@{2}: commit: add distributed
c412f7e HEAD@{3}: commit (initial): wrote a readme file

git reset --hard 8e27eb6

HEAD is now at 8e27eb6 append GPL

HEAD 值

  HEAD 表示提交的最新版本。HEAD^表示上一个版本,HEAD^^表示上上个版本。HEAD~100表示往上100个版本。

分支:
查看分支:git branch

创建分支:git branch

切换分支:git checkout

创建+切换分支:git

合并某分支到当前分支:git merge

删除分支:git branch -d

创建远程分支(本地分支push到远程):$ git push origin [name]

删除远程分支:$ git push origin :heads/[name]

拉取远程分支代码到本地并创建分支ggtopic/V2 origin/topic/V2


git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。
–hard
git add -u :他仅监控已经被add的文件(即tracked file),他会将被修改的文件提交到暂存区。add -u 不会提交新文件(untracked file)。(git add --update的缩写)

git add -A :是上面两个功能的合集(git add --all的缩写)


git diff 看冲突

git mergetool
git commit -m “merge”

  1. 开发分支开发,commit代码
  2. git fetch
  3. git checkout --track -b push_1128 origin/master
  4. git log branch_xxx -n 查看开发分支提交日志,找commit id
  5. git cherry-pick xxx 条件提交到push分支
  6. 解决冲突
  7. 编译验证–重要!!!
  8. git push origin HEAD:refs/for/master

查看远程分支:$ git branch -r
获取远程分支信息git fetch origin
比较和远程分支差异git diff master origin/master
git diff origin/master origin/release

git log --graph --decorate --oneline --simplify-by-decoration --all
显示图谱

我看到的更好的方法。

  1. git log filename
    可以看到fileName相关的commit记录
  2. git log -p filename
    可以显示每次提交的diff(包括远程)
  3. 只看某次提交中的某个文件变化,可以直接加上fileName
    git show c5e69804bbd9725b5dece57f8cbece4a96b9f80b filename

git cherry-pick
git cherry-pick用于把另一个本地分支的commit修改应用到当前分支。
实际问题
在本地 master 分支上做了一个commit ( 38361a68138140827b31b72f8bbfd88b3705d77a ) , 如何把它放到 本地 old_cc 分支上?
办法之一:

----------------------------tag---------------------------
Git标签可以针对某一时间点的版本做标记,常用于版本发布。
列出标签
$ git tag # 在控制台打印出当前仓库的所有标签
$ git tag -l ‘v0.1.*’ # 搜索符合模式的标签

打标签
git标签分为两种类型:轻量标签和附注标签。轻量标签是指向提交对象的引用,附注标签则是仓库中的一个独立对象。建议使用附注标签。
创建轻量标签
$ git tag v0.1.2-light

创建附注标签
$ git tag -a v0.1.2 -m “0.1.2版本”

创建轻量标签不需要传递参数,直接指定标签名称即可。
创建附注标签时,参数a即annotated的缩写(怎么我感觉是add的缩写呢),指定标签类型,后附标签名。参数m指定标签说明,说明信息会保存在标签对象中。

查看标签信息
用git show命令可以查看标签的版本信息:
$ git show v0.1.2

切换到标签

与切换分支命令相同,用git checkout [tagname]

删除标签
误打或需要修改标签时,需要先将标签删除,再打新标签。
$ git tag -d v0.1.2 # 删除标签

参数d即delete的缩写,意为删除其后指定的标签。
补打标签
给指定的commit打标签
打标签不必要在head之上,也可在之前的版本上打,这需要你知道某个提交对象的校验和(通过git log获取)。
$ git tag -a v0.1.1 9fbc3d0

标签发布
通常的git push不会将标签对象提交到git服务器,我们需要进行显式的操作:
$ git push origin v0.1.2 # 将v0.1.2标签提交到git服务器
$ git push origin –tags # 将本地所有标签一次性提交到git服务器

注意:如果想看之前某个标签状态下的文件,可以这样操作
git tag 查看当前分支下的标签
git checkout v0.21 此时会指向打v0.21标签时的代码状态,(但现在处于一个空的分支上)

方式一:修改远程仓库地址

更换远程仓库地址,URL为新地址。

【git remote set-url origin URL】

git查看远程仓库地址命令
git remote -v
git cherry-pick *****
git checkout -b *** origin ****

revert 后合并代码被冲掉:

解决方法:

在 revert feature 的 merge 之后,checkout 到 feature 分支,

使用 git reset head^ 撤销上次提交(如果merge前有多个提交就撤消所有提交)

然后修改有问题的代码,代码没问题的话不修改也行

修改完后 ,将代码提交并强推到远程分支
git add .
git commit -m “”
git push -f

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值