Git实际开发中使用的注意点

git实际开发中使用的注意点

修改当前项目的提交者信息

查看

1
2
3
$ git config user.name
$ git config user.email

修改

1
2
3
4
# 设置全局
git config --global user.name "Author Name"
git config --global user.email "Author Email"

1
2
3
4
# 或者设置本地项目库配置
git config user.name "Author Name"
git config user.email "Author Email"

建立新的本地分支,该分支代码和本地远程仓库中某个远程分支相同

之前对远程仓库中的origin/xxx理解有误,这些分支跟踪远程仓库里面的具体的某个分支但是实际上是存在于本地的(可以切换到他们身上),请将它们看做书签, 这样可以提醒你该分支在远程仓库中的位置就是你最后一次连接到它们的位置。

可以用 git branch -a命令查看本地的所有分支,包括远程分支

1
2
3
4
5
6
7
git checkout remotes/origin/hotfix_KYP3.0.V202301.01.002   //切换到远程的分支,提示处于分离头指针状态,说明处在一个特点的提交上面,基于当前提交创建新分支

git log -n 1 //确认当前的提交哈希

git switch -c hotfix01.002 7f5ff443b83aac764d87ab9d9d5aa1f11520beeb //根据当前的提交创建一个新分支

git branch -u origin/hotfix_KYP3.0.V202301.01.002 //跟踪上流分支hotfix_KYP3.0.V202301.01.002
1
2
git rev-parse --abbrev-ref @{upstream}
查看当前分支的上游分支

如果直接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这类)

  1. git fetch //获取最新的远程仓库的状态(我理解为将本地的远程跟踪分支)
  2. git merge 将更新好的远程跟踪分支合并至对应的本地分支
  3. 上面的操作不会影响本地的暂存和未暂存的文件
  4. 再将要提交的需求进行commit
  5. push到远程