git命令小总结
1.提交代码步骤
1.1 查看目前代码的修改状态
运行git status命令
Change to be committed:代表已暂存的文件
Changed not staged for commit: 代表已修改的文件
Untracked files:代表未跟踪的文件
1.2 查看代码修改的内容(此步骤可省略)
git diff查看未暂存文件更新的部分。
git diff <fileName> : 查看指定文件的更新的部分。
1.3 暂存需要提交的文件
1.3.1 对于Changed not staged for commit的文件,根据提示选择是提交文件还是不提交文件:
git add <file>:将文件添加到暂存文件。
git rm <file>:删除文件,并且会有删除记录。
git checkout -- <file>:将文件恢复成未修改的样子。
1.3.2 对于Untracked files文件,根据提示选择要提交的文件:
git add <file>:将文件添加到暂存文件。
如果是不需要提交的代码,可以使用.gitignore文件进行忽略。
步骤:vi .gitignore
进入.gitignore文件之后,按i键进入编写状态,将不需要提交的文件全部写入.gitignore文件中,在文件末端加入.gitignore,这样就不会出现.gitignore已修改的跟踪。
先按Esc键,在同时按shift+:键,输入wq,保存编写内容与退出vi。
在只剩下需要的提交的文件时,可以使用git add .命令价格所有文件添加。
1.4 查看状态
进行完上面的1.3步骤之后,查看一下目前代码的状态,此时,Change to be committed部分是准备提交的代码,Changed not staged for commit与Untracked files部分为空。
1.5 提交已暂存的文件
使用命令git commit,在文件的前面书写本次提交的内容。
1.6 查看commit提交的内容
运行命令git log,查看提交日志。
1.7 同步到服务器
git push origin <本地分支名>
如果出现remote: New Changes: remote: http://review.rnd.meizu.com/203495说明提交成功,在浏览器可以看到提交的内容。
2.遇到的问题与解决方法
2.1 提交代码到指定的commit上
代码如果未审核,可以使用这个,如果代码已经审核,需要提交新的commit。
2.1.1 查看最近一条log是不是需要修改的那一条
使用git log查看,如果最近一条就是需要修改的那一条,则直接进行下一步,如果不是,则需要使用命令git reset --soft commit_id 将最近一条修改为需要修改的commit记录。
2.1.2 修改文件
使用git add添加修改。
2.1.3 提交已暂存的代码
使用命令git commit --amend提交修改内容。
2.1.4 提交代码
使用git push origin <本地分支名> 命令提交代码。
2.2 git push 命令运行错误
错误:remote: Hint: To automatically insert Change-Id, install the hook:
remote:gitdir=$(git rev-parse --git-dir); scp -p -P 29418 zhangmiao@review.rnd.meizu.com:hooks/commit-msg ${gitdir}/hooks/
解决方法,运行gitdir=$(git rev-parse --git-dir); scp -p -P 29418 zhangmiao@review.rnd.meizu.com:hooks/commit-msg ${gitdir}/hooks/
然后将代码提交到指定的commit上。
3.git cherry-pick的使用
如果想要将分支A上提交过的commit提交到分支B,可以使用cherry-pick命令。
3.1 记录分支A上已经提交过的commit_id
在分支A上运行git log命令,查看需要提交的commit_id。
3.2 切换分支
先使用git status命令查看目前代码的修改状态,如果代码无修改状态,才可以切换分支,如果有修改,则无法切换分支。然后使用命令git checkout B切换到分支B。
3.3 运行cherry-pick命令
使用git status命令查看代码的修改状态,无修改状态后运行git pull更新本地分支代码,最后运行git cherry-pick commit_id提交分支A上的commit。
3.4 提交代码
使用git push origin <本地分支名> 命令提交代码。
4.合并提交
如果提交多次,想要把提交合并,可以使用git rebase –I commit_id命令。这里指的合并是指未同步到服务器的。
4.1 查看commit_id
使用git log查看提交日志。
Git log:
Commit A
Commit B
Commit C
4.2 合并提交
将A与B合并成一个Commit,则运行命令git rebase –I commitC_id,然后将b的前面修改为s,然后退出rebase。
4.3 同步到服务器
查看git log,可以看到Commit A与Commit B变成了一个Commit。然后按照1.7的方法同步代码到服务器即可。
5.Commit_id注解
本文中所说的commit_id指的是下图中黄色字体的部分。
6.查看与修改用户名与邮箱
6.1 查看用户名和邮箱地址:
git config user.name
git config user.email
6.2 修改用户名和邮箱地址:
git config --global user.name "username"
git config --global user.email "email"
7.上传本地已经存在的项目到github上
先在github上创建一个repository,比如名字为test。
在项目文件夹打开git。
git init
git add .
git commit -m "init"
git remote add origin https://github.com/ZhangMiao147/test.git
git push -u origin master