Git实际开发中使用的注意点
git实际开发中使用的注意点
修改当前项目的提交者信息
查看
1 |
|
修改
1 |
|
1 |
|
建立新的本地分支,该分支代码和本地远程仓库中某个远程分支相同
之前对远程仓库中的origin/xxx理解有误,这些分支跟踪远程仓库里面的具体的某个分支但是实际上是存在于本地的(可以切换到他们身上),请将它们看做书签, 这样可以提醒你该分支在远程仓库中的位置就是你最后一次连接到它们的位置。
可以用 git branch -a
命令查看本地的所有分支,包括远程分支
1 |
|
1 |
|
如果直接git clone 远程仓库的话,就把所有的分支都下载下来了。那么远程的这个分支已经拉下来了,现在要为它创建一个本地分支的话,直接切换到该branch,然后git branch XXX,这样XXX这个本地分支就是基于该远程分支创建的,它的commit链和远程分支的一样。或者,
git checkout -b [localbranch] [remotename]/[remotebranch]
。这样,这个localbranch就是基于remotebranch
创建的。无论是哪一种方法创建,都需要再加一个tracking,git checkout --track origin/serverfix
。这样commit可以直接push到所tracking的远程分支上去。肯定是不能直接在本地的远程分支上开发的,因为本地看到的远程分支是为了fetch server上别人提交的commit用的。
逻辑是这样的,远程分支fetch了的话,就可以把远程的commit都同步到本地仓库,然后可以merge到本地对应的tracking分支了,然后就可以git push到对应的远程分支了。可见fetch server中的远程分支中最新的commits,这是在本地看到的远程分支的唯一用途。
git checkout -b [localbranch][remotename]/[remotebranch]
这个命令中的localbranch不可以缺少
向远程提交代码的注意事项
在多人协作开发代码时,在自己要提交一个需求之前,如果远程仓库有其他开发者做了提交,此时该分支远程的提交领先于你自己本地的远程跟踪分支;这个时候你进行代码的推送就会出现问题。
我采用的操作是:(远程跟踪分支指origin/xxx这类)
- git fetch //获取最新的远程仓库的状态(我理解为将本地的远程跟踪分支)
- git merge 将更新好的远程跟踪分支合并至对应的本地分支
- 上面的操作不会影响本地的暂存和未暂存的文件
- 再将要提交的需求进行commit
- push到远程