Git使用笔记

初始使用流程:

git config [--global] user.name "xxx" 设置username

git config [--global] user.email "xxx@xxx" 设置email

--global:全局设置,不加则是对当前git 目录设置(适合区别公司项目和私人项目)

 

git init :当前目录加入git版本控制(不想再用git管理:rm -rf .git/ )

git add -A(添加所有文件到暂存区)

git commit -m "提交信息"

git push <远程分支name>(只有一个远程分支时可省略)

 

与他人合作同一个仓库时:

1. 定期pull一下拉取最新代码

2. 提交代码(无分支版):

自己在提交代码之前先pull代码,假如修改同一个文件了,一般会提示拉取失败,这个时候需要stash当前修改到储藏区:

git stash [save 'message'] 

git pull

git stash pop (弹出stash栈顶的stash即刚才stash的修改,或者使用 stash apply 可不删除该stash)

这时本地和远程的两者修改的不是同一块内容时,可以自动合并,改了同一块区域时,大多编辑器会提示冲突区域,并且提供合适的工具帮助合并(eg:IDEA),也可以自己配置git difftool或者mergetool进行合并代码

上面的拉去代码的步骤 有些IDE自动帮你做了(eg:IEDA)。

保证本地代码最新后再进行add commit等操作,然后进行push

3. 提交代码(分支版)

在当前编辑的功能或bugfix分支commit之后(不提交的话切换分支会保留修改),切换到主分支

git checkout  master  (git checkout -b <branchName> 新建并切换到此分支)

在master分支下pull拉取最新代码,没有冲突,因为不会直接编辑master分支

然后开始merge分支

git merge branchName

如果没有冲突将会很顺利,假如有冲突,git会生成冲突标记,需要手动解决冲突,可借助于工具 比如 beyondCompare (3-way merge tool)

解决冲突后,add文件 提交文件,然后更新远程master分支

 

4. 在某一分支上不是最新的记录上提交了怎么办?

假如有git提交图示的话,可以看出是你在历史的一次提交上分叉commit了,有些IDE很贴心的可以帮你自动merge之后提交。

手动解决这个问题的话,可以是 拉取新代码到一个新的分支上,然后merge两个分支再提交,类似于master的合并,(仍可能会存在冲突)

 

5. 重置commit

使用git reset 命令

git reset --soft HEAD~ 最近的一次commit

或者 git reset --soft  <commit hash>

--soft --mixed --hard区别:soft会把被重置的修改放入 staged,即git add的效果;mixed会变成未staged的修改;hard会完全清除掉(包括被重置的修改和当前未add的修改,慎用!)

 

6. 设置远程url

git remote set-url <name> <newurl>

 

总结:git的使用可以使用 git --help 或者某个命令的 help 像:git config --help 来查看相应手册

 

posted @ 2018-07-17 15:55  pompeybrain  阅读(262)  评论(0编辑  收藏  举报